코딩테스트를 통과했어도 풀이를 말로 설명하는 건 다른 연습입니다. 코드를 처음부터 한 줄씩 읽기보다 문제의 조건과 선택한 핵심 아이디어부터 말해 보세요. 그 방법이 왜 맞는지와 어디에서 실패할 수 있는지를 설명하면 코드의 의미가 드러납니다.
문제의 핵심 제약부터
입력 크기와 값의 범위, 중복과 정렬 여부를 먼저 정리하세요. 같은 모양의 문제라도 이 조건에 따라 사용할 방법이 달라집니다. 문제 원문이 비공개라면 면접·시험 규정을 지켜 설명 가능한 범위에서 복기해야 해요.
가장 단순한 방법에서 개선으로
먼저 직관적인 완전탐색이 무엇이고 왜 비용이 큰지 설명하면 개선의 이유가 분명해집니다. 이후 중복 계산을 줄이는지, 탐색 범위를 줄이는지 핵심 한 가지를 말하세요. 알고리즘 이름을 외워 붙이는 것보다 계산을 줄이는 근거가 필요해요.
왜 맞는지를 코드와 분리해서
반복문의 각 단계에서 유지되는 조건이나 선택의 정당성을 말해 보세요. 예제가 맞았다는 것과 모든 입력에서 맞다는 것은 다릅니다. 탐욕적 선택이라면 그 선택이 이후 최적해를 막지 않는 이유를 확인해야 합니다.
테스트는 경계와 실패 가능성 중심으로
빈 입력, 최소·최대 길이, 같은 값, 순서가 반대인 경우를 확인해 보세요. 정수 범위나 인덱스, 방문 처리 시점도 중요합니다. 복잡도는 반복문 모양만 보지 말고 내부 연산 비용과 추가 저장 공간을 포함해서 설명하세요.
이렇게 답해 보세요
“이 풀이를 선택한 이유와 복잡도를 설명해 주세요.”
단순하게는 [방법]으로 풀 수 있지만 [반복 계산] 때문에 비용이 큽니다. 그래서 [핵심 성질]을 이용해 [자료구조·알고리즘]을 선택했어요. 각 단계에서 [유지 조건]이 성립하고, 비용은 [입력 기준의 시간·공간]입니다. [경계 사례]도 확인해야 합니다.답변 구성을 보여주기 위한 가상 예시예요. 대괄호 안의 내용은 본인의 경험과 실제 역할, 확인한 결과로 바꿔 주세요.
준비 체크리스트
- 입력 크기와 가정 적기
- 정답의 이유를 코드 없이 설명하기
- 반례 세 개와 복잡도 계산 준비하기
핵심 단어만 보고 소리 내어 답한 뒤, 같은 경험을 다른 질문으로 다시 설명해 보세요.
자주 묻는 질문
시간 안에 최적 풀이를 못 찾으면요?
실행 가능한 방법과 병목을 먼저 설명하고 개선 방향을 말하세요. 모르는 해법을 아는 척할 필요는 없습니다.
코드가 기억나지 않으면요?
아이디어와 불변 조건을 먼저 설명하고, 세부 구현은 확인할 부분으로 구분하세요.
앱 다운로드 ↓