백트래킹 문제를 풀 때 재귀 구조를 짜는 건 어렵지 않다. 진짜 어려운 건 "어디서 멈출 것인가"다.
코딩테스트에서 "연속된 부분 배열"이라는 문구가 나오는 순간, 머릿속에서 이중 for문이 떠오르면 이미 시간 초과 루트에 올라탄 거다. 대부분의 연속 구간 문제는 슬라이딩 윈도우 하나면 O(n)에 정리된다.
"최솟값의 최댓값을 구하시오." 이 문장을 읽고 바로 이분 탐색이 떠오르면, 이미 절반은 맞힌 거다.
지난 카카오 공채 코테를 본 친구가 시험 끝나고 이런 말을 했다. "코드 제출했는데 맞았는지 틀렸는지를 모르겠어.
트라이를 배워야 한다는 건 알지만 실전에서 써본 적은 없다는 사람이 의외로 많다. 프로그래머스 레벨 3 이상에서 문자열 문제를 만났을 때, 해시맵과 정렬만으로는 시간 초과를 피할 수 없는 순간이 반드시 온다.
"각 원소의 오른쪽에 있는 첫 번째 더 큰 수를 구하라." 이 문장을 보면 반사적으로 이중 for문을 짠다.
구글이 올해 초부터 코딩 면접에서 AI 어시스턴트 사용을 허용하기 시작했다. 메타는 작년 10월에 이미 도입했고.
연결 관계를 추적하는 문제가 나오면 대부분 DFS/BFS부터 떠올린다. 간선이 정적이고 한 번만 탐색하면 되는 상황이라면 그게 맞다.
격자 위에서 (0,0)에서 (N,M)까지 최단 거리를 구하라 — 이건 누구나 BFS를 떠올린다. 근데 "문자열 A를 문자열 B로 바꾸는 최소 연산 횟수는?
회의실이 몇 개 필요한지 물어보는 문제. 코테에서 너무 자주 나오는 유형이라 대부분은 "시작 시간 정렬 → 힙으로 종료 시간 관리"로 접근한다.
올해 상반기 면접 후기들을 쭉 읽어보면, 예전에는 없던 패턴이 하나 보인다. 주니어 지원자한테 시스템 디자인 질문을 던지는 회사가 확실히 늘었다.
프로그래머스 Lv2를 풀다가 "이거 투 포인터 아닌가?" 싶어서 left, right 잡고 짜기 시작한다.
카카오 2025년 하반기 코딩테스트부터 조용히 바뀐 게 하나 있다. 시험 중에 전체 테스트케이스 채점 결과가 더 이상 안 나온다.
"정렬된 배열에서 값을 찾는 거잖아." 이분 탐색을 이렇게만 알고 있으면 코딩테스트에서 이분 탐색 문제를 절대 못 알아본다.
코테에서 가장 무서운 순간이 있다. 문제를 읽자마자 "아, 이거 그리디네" 하고 자신 있게 코드를 짰는데, 제출하면 40-60% 어딘가에서 WA가 뜨는 순간.
코테에서 "다음으로 큰 원소(Next Greater Element)"를 묻는 문제를 만나면 대부분 이중 for문을 먼저 떠올린다. O(n²)이 나오고, 시간 초과가 뜨고, 그제서야 "뭔가 다른 방법이 있나?
DP 문제를 풀다 보면 가끔 "방문한 노드의 조합"이나 "선택한 원소의 집합"을 상태로 들고 다녀야 하는 순간이 온다. 배열로는 표현이 안 되고, set을 넣자니 해싱이 복잡하고.