코딩 인터뷰 문제 푸는 법을 마침내 터득하기까지 — LeetCode 대신 AI 생성 문제로 시작한 준비법
알고리즘 코딩 인터뷰를 앞둔 저자가 LeetCode 벼락치기 대신 ChatGPT가 생성한 쉬운 문제부터 단계적으로 난이도를 올리며 준비한 경험을 공유합니다. 문제를 풀며 막히는 지점을 기록하고 자신의 풀이 영상을 복기한 끝에, 가정 정리부터 수동 추적, 점진적 테스트까지 이어지는 10단계 작업 리듬을 정립했습니다.
본문
알고리즘 코딩 인터뷰를 앞두고 있는 개발자라면 '생각을 소리 내어 말하라', '코딩하면서 설명하라', '처음부터 최적화를 걱정하지 마라' 같은 표준 조언을 들어봤을 것입니다. 그러나 저자는 이런 조언이 실제로 어떤 모습인지, 시간이 부족할 때 어떻게 효과적으로 준비할 수 있는지가 막연하다는 문제에서 출발합니다.
LeetCode 벼락치기 대신 AI 생성 문제로 점진적 학습
저자는 곧바로 LeetCode 문제를 파고드는 방식이 '깊은 곳에 바로 뛰어드는 것'처럼 느껴져 자신감만 무너뜨릴 수 있다고 판단했습니다. 인터뷰는 시작 전부터 불안하면 잘 풀리지 않기 때문입니다. 대신 ChatGPT를 활용해 쉬운 AI 생성 연습문제부터 시작해 점차 복잡도를 높였고, 난이도에 따라 하루 2~3개씩 풀었습니다. 저자는 이 방식이 매우 효과적이었다고 평가하는데, 압도당하지 않고 편안한 속도로 배우면서 문제를 풀 때마다 실력이 느는 것을 체감할 수 있었기 때문입니다.
자신의 마찰 지점을 정확히 파악하기
각 연습에서 저자는 문제를 매끄럽게 풀지 못하게 하는 구체적인 마찰 지점을 찾아내려 했습니다. 확인된 지점은 ▲코드를 작성하기 전에 문제를 충분히 이해하지 못하는 것 ▲테스트 없이 한꺼번에 너무 많은 코드를 작성하는 것 ▲도중에 자기 의심에 빠지는 것 ▲버그가 나타났을 때 당황하고 우아하게 복구하는 방법을 모르는 것이었습니다. 저자는 몇 차례 세션을 직접 녹화해 영상을 돌려보며 자신의 페이스, 설명 방식, 전반적인 인상까지 평가했습니다.
정립한 10단계 작업 리듬
이 과정을 통해 저자는 스스로를 안정시키는 작업 리듬을 발견했습니다. 첫째, 가정을 명확히 하기 — 모든 가정을 미리 적어둡니다. 둘째, 환경 검증 — 먼저 더미 함수를 만들어 테스트 출력을 찍어 모든 것이 동작하는지 확인합니다. 셋째, 알고리즘 수동 추적 — 예시 입력을 단계별로 따라가며 반복마다 필요한 모든 변수를 파악합니다. 넷째, 막힘을 말로 표현 — '여기에 flag가 필요한가? 누적 합계가 필요한가? 그룹별로 추적하나, 전체에 걸쳐 추적하나?'처럼 풀려는 것을 소리 내어 말합니다. 다섯째, 로직 검증 — 예시 입력을 다시 따라가며 변수가 올바르게 설정·초기화·누적되는지 확인하고, 수동 단계가 기대 결과를 낼 때까지 추적합니다. 여섯째, 코딩 시작 — 로직이 증명된 후에만 코드를 작성해, 문제 해결 중에 문법에 발목 잡히는 것을 막습니다. 일곱째, 사고 과정 노출 — 이 단계에 이르면 의사코드와 변수 상태 추적이 이미 화면에 있어 면접관이 사고 과정을 명확히 볼 수 있습니다. 여덟째, 점진적 테스트 — 디버깅용 출력문을 일찍 자주 넣어 핵심 자료구조를 실시간으로 관찰합니다. 아홉째, 단순한 디버깅 수용 — 단순한 print문을 주저 없이 사용해 버그를 일찍 잡습니다. 열째, 버그 앞에서 침착함 유지 — 예상치 못한 출력이 나오면 평소 업무일에 수정하는 일반 티켓처럼 대해 긴장을 관리합니다.
저자는 인터뷰를 준비하는 독자들에게 이 방법이 도움이 되기를 바라며, 각자의 팁을 댓글로 공유해 달라고 글을 마무리합니다.
원문: dev.to / 번역·요약: Trawling