백트래킹 문제를 만나면 먼저 확인할 3가지 — 가지치기 감각 잡기
백트래킹이 통하는 문제인지 판단하는 기준과, 부분 해 구성·유효성 검사·종료 조건을 어떻게 잡아야 하는지 정리합니다.
백트래킹이 통하는 문제인지 판단하는 기준과, 부분 해 구성·유효성 검사·종료 조건을 어떻게 잡아야 하는지 정리합니다.
여러 강의 시간 구간이 주어졌을 때, 동시에 진행되는 강의 수를 기준으로 필요한 최소 강의실 개수를 구하는 방법을 정리합니다.
여러 구역에 색을 칠할 때 인접한 구역은 같은 색을 사용할 수 없다는 조건에서, 전체 비용을 최소로 만드는 방법을 DP로 정리합니다.
줄바꿈과 탭으로 표현된 프로젝트 목록 문자열에서 가장 긴 문서 경로의 길이를 깊이별 누적 길이 방식으로 구하는 방법을 정리합니다.
계속 쌓이는 장애 알림 중 최근 N개만 고정 크기 메모리에 보관하고, 최신 기준으로 빠르게 조회하는 원형 버퍼 구현을 정리합니다.
전체 데이터를 저장할 수 없는 로그 스트림에서 대표 샘플 K개를 공평하게 유지하는 Reservoir Sampling 방법을 정리합니다.
이진 트리 문제를 처음 푸는 사람을 위해 null 처리, 현재 노드 처리, 왼쪽/오른쪽 서브트리 결과를 합치는 재귀 사고법을 정리합니다.
무작위 좌표를 여러 번 생성해 특정 구역 안에 들어가는 비율을 추정하는 Monte Carlo 시뮬레이션 문제를 정리합니다.
슬라이딩 윈도우를 이용해 서로 다른 종류가 K개 이하인 가장 긴 연속 구간의 길이를 구하는 문제를 정리합니다.
한 번에 이동할 수 있는 칸 수가 정해져 있을 때 목표 위치에 도달하는 방법 수를 구하는 DP 문제를 정리합니다.
입력한 접두사로 시작하는 명령어 후보를 최대 3개까지 빠르게 추천하는 Trie 응용 문제를 정리합니다.
입력한 문자열로 시작하는 후보 전체를 빠르게 찾는 기본형 자동 추천 문제를 Trie 관점으로 정리합니다.
배열에서 0이 아닌 숫자들의 순서를 유지하면서 모든 0을 뒤로 보내는 방법을 투 포인터 방식으로 정리합니다.
정수 배열에서 중복된 값을 제거하되 처음 등장한 순서는 그대로 유지하는 방법을 Set을 이용해 정리합니다.
문자열을 왼쪽부터 확인하면서 가장 먼저 다시 등장하는 문자를 Set으로 찾는 방법을 정리합니다.
함수와 지연 시간을 받아 일정 시간이 지난 뒤 작업을 실행하는 예약 함수 구현을 정리합니다.
서로 붙어 있는 구역을 동시에 선택할 수 없다는 조건에서 얻을 수 있는 최대 보상을 구하는 방법을 정리합니다.
이진 트리에서 모든 노드 값이 1인 서브트리가 몇 개인지 DFS로 구하는 방법을 정리합니다.
이진 트리에서 부모에서 자식으로 내려가며 값이 정확히 1씩 증가하는 경로의 최대 길이를 DFS로 구하는 방법을 정리합니다.
힙을 이용해 K개의 정렬된 리스트를 효율적으로 병합하는 코딩 면접 문제 풀이
숫자 문자열을 알파벳으로 해석하는 경우의 수를 동적 계획법으로 구하는 코딩 면접 문제 풀이
클로저와 고차 함수를 이용해 pair를 함수로 구현하는 코딩 면접 문제 풀이
XOR 연산으로 prev와 next를 하나의 필드에 저장하는 연결 리스트 구현을 정리합니다.