분류 전체보기

    BOJ 5397 키로거

    문제 창영이는 강산이의 비밀번호를 훔치기 위해서 강산이가 사용하는 컴퓨터에 키로거를 설치했다. 며칠을 기다린 끝에 창영이는 강산이가 비밀번호 창에 입력하는 글자를 얻어냈다. 키로거는 사용자가 키보드를 누른 명령을 모두 기록한다. 따라서, 강산이가 비밀번호를 입력할 때, 화살표나 백스페이스를 입력해도 정확한 비밀번호를 알아낼 수 있다. 강산이가 비밀번호 창에서 입력한 키가 주어졌을 때, 강산이의 비밀번호를 알아내는 프로그램을 작성하시오. 강산이는 키보드로 입력한 키는 알파벳 대문자, 소문자, 숫자, 백스페이스, 화살표이다. 입력 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000)..

    3장 시스템 설계 면접 공략법

    "널리 알려진 제품 X를 설계해보라" 는 식으로 어떠한 시스템의 설계 기술을 시연하고 설계 과정에서 내린 결정들에 대한 방어 능력을 보이며 면접관의 피드백을 건설적인 방식으로 처리할 자질이 있음을 보이는 자리이다. 설계의 순수성에 집착하여 타협적 결정을 도외시하는 over-engineering을 조심하라. 효과적 면접을 위한 4단계 접근법 1단계 문제 이해 및 설계 범위 확정 시스템 설계 면접시에 바로 답을 내지 말라. 올바른 질문, 적절한 가정을 통해 시스템 구축에 필요한 정보를 모으라 즉 면접관의 요구사항을 정확히 이해하는데 필요한 질문을 하라. 구체적으로 어떤 기능을 만들어야 하나. 제품 사용자 수는 얼마나 되나? 회사의 규모는 얼마나 빨리 커지리라 예상하는가? 회사가 주로 사용하는 기술 스택은 무..

    WIS (World It Show 2023) 후기

    4월 21일에 WIS을 관람하러 갔다. 다양한 IT기업이 참가하여 최신 트렌드의 기술들을 볼 수 있는 자리였다. 대두되는 기술은 AI, BigData, Cloud, Health Care 등이었다. 그 외로는 Senior 세대를 타겟으로 하는 기술, 3D 모델링 인테리어 기술, 탄소중립을 위한 그린IT 기술 등이 돋보였다. 개인적으로 관심있는 분야는 헬스케어 및 반려동물 관련 분야이다. AI와 Iot등과 접목해 간단한 검사로 건강상태를 알려주는 등의 기술이 많았다. 헬스케어 관련 회사와 기술 BTCARE사의의 VR 게임을 통해 치매 예방을 하는 솔루션 에이아이인사이트사의 안저카메라로 촬영한 이미지 분석을 통한 황반병성, 당뇨성 망막병증, 녹내장 판독 솔루션(WISKY) 메디아이플러스사의 임상실험 정보 솔루..

    BOJ 1406 에디터

    문제 한 줄로 된 간단한 에디터를 구현하려고 한다. 이 편집기는 영어 소문자만을 기록할 수 있는 편집기로, 최대 600,000글자까지 입력할 수 있다. 이 편집기에는 '커서'라는 것이 있는데, 커서는 문장의 맨 앞(첫 번째 문자의 왼쪽), 문장의 맨 뒤(마지막 문자의 오른쪽), 또는 문장 중간 임의의 곳(모든 연속된 두 문자 사이)에 위치할 수 있다. 즉 길이가 L인 문자열이 현재 편집기에 입력되어 있으면, 커서가 위치할 수 있는 곳은 L+1가지 경우가 있다. 이 편집기가 지원하는 명령어는 다음과 같다. L 커서를 왼쪽으로 한 칸 옮김 (커서가 문장의 맨 앞이면 무시됨) D 커서를 오른쪽으로 한 칸 옮김 (커서가 문장의 맨 뒤이면 무시됨) B 커서 왼쪽에 있는 문자를 삭제함 (커서가 문장의 맨 앞이면 무..

    [바킹독의 실전 알고리즘 강의] 연결 리스트

    연결 리스트 정리 2021.03.07 - [Computer Science/DataStructure] - Linked List (연결 리스트) 연결 리스트 문제 BOJ 1406 에디터 BOJ 5397 키로거 손코딩 문제 1 원형 연결 리스트 내의 임의의 노드 하나가 주어졌을 때 해당 List의 길이를 효율적으로 구하는 방법? 정답 동일한 노드가 나올 때 까지 계속 다음 노드로 가면 됨 공간복잡도 O(1), 시간복잡도 O(N) 손코딩 문제 2 중간에 만나는 두 연결 리스트의 시작점들이 주어졌을 때 만나는 지점을 구하는 방법? 정답 일단 두 시작점 각각에 대해 끝까지 진행시켜서 각각의 길이를 구함. 그 후 다시 두 시작점으로 돌아와서 더 긴쪽을 둘의 차이만큼 앞으로 먼저 이동시켜놓고, 두 시작점이 만날 때 까..

    BOJ 3273 두 수의 합

    문제 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 (ai, aj)쌍의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수열의 크기 n이 주어진다. 다음 줄에는 수열에 포함되는 수가 주어진다. 셋째 줄에는 x가 주어진다. (1 ≤ n ≤ 100000, 1 ≤ x ≤ 2000000) 출력 문제의 조건을 만족하는 쌍의 개수를 출력한다. 코드 import java.io.*; import java.util.*; public class Main { public static void main(String[] ar..