코딩테스트 준비 방법: 자주 나오는 유형, 언어 선택, 하루 공부 루틴
TUREFF• •0
개발자 채용에서 코딩테스트는 서류 다음에 오는 첫 관문인 경우가 많습니다. 정해진 시간 안에 몇 개의 알고리즘 문제를 풀고, 숨겨진 테스트 케이스를 통과해야 점수가 나옵니다. 막막하게 느껴지지만 나오는 유형은 생각보다 정해져 있어서, 유형별로 연습하면 꾸준히 실력이 오릅니다.
언어는 무엇으로 볼까?
- 가장 익숙한 언어가 정답입니다. 시험 중에 문법을 떠올리느라 시간을 쓰면 안 됩니다.
- 파이썬은 코드가 짧고 문자열·리스트 처리가 편해서 많이 쓰입니다. 다만 실행 속도가 느린 편이라 반복이 아주 많은 문제에서는 시간 초과에 주의해야 합니다.
- 자바와 C++은 코드가 길어지지만 속도 면에서 여유가 있습니다.
- 응시하려는 회사가 어떤 언어를 허용하는지 공고에서 먼저 확인하세요.
정한 언어의 표준 라이브러리, 특히 정렬, 해시맵(딕셔너리), 큐와 덱, 우선순위 큐(힙) 사용법은 손에 익을 때까지 연습해 두세요.
자주 나오는 유형
- 구현·시뮬레이션: 문제에 적힌 규칙을 그대로 코드로 옮기는 유형입니다. 알고리즘은 단순하지만 조건이 많아 실수가 잦습니다. 입문자에게 가장 먼저 권하는 유형입니다.
- 문자열 처리: 자르기, 뒤집기, 세기, 패턴 찾기 등. 자주 나오고 점수를 지키기 좋은 유형입니다.
- 완전 탐색: 가능한 경우를 모두 확인합니다. 입력 크기를 보고 다 돌려도 되는지 판단하는 것이 핵심입니다.
- 그래프 탐색(DFS·BFS): 미로, 연결된 영역 세기, 최단 거리 등. 격자 지도 문제가 특히 자주 보입니다.
- 정렬과 이분 탐색: 정렬 후 조건에 맞는 값을 빠르게 찾는 문제입니다.
- 그리디: 매 순간 가장 좋아 보이는 선택을 하는 방식입니다. 왜 그 선택이 맞는지 설명할 수 있어야 합니다.
- 동적 계획법(DP): 작은 문제의 답을 저장해 큰 문제를 푸는 방식입니다. 처음엔 어렵지만 대표 문제를 반복하면 패턴이 보입니다.
- 최단 경로·자료구조 응용: 다익스트라, 힙, 유니온 파인드 등은 중급 이상에서 나옵니다.
시간 복잡도 감각이 중요합니다
문제마다 입력 크기 제한이 적혀 있습니다. 입력이 크면 이중 반복문으로는 시간 초과가 날 수 있으니, 코드를 쓰기 전에 "이 방법이면 대략 몇 번 연산하는가"를 먼저 따져 보세요. 이 습관 하나로 쓸데없이 코드를 다시 짜는 일이 크게 줄어듭니다.
문제 풀이 플랫폼 활용법
온라인 저지 사이트나 기업 코딩테스트 연습 문제를 제공하는 플랫폼이 여럿 있습니다. 어디를 쓰든 원칙은 같습니다.
- 난이도별·유형별로 분류된 문제를 쉬운 것부터 풉니다.
- 실제 시험과 같은 환경(자동 완성 없이, 시간 제한을 두고)에서 연습하는 날을 따로 둡니다.
- 지원하려는 회사가 쓰는 시험 환경이 있다면 미리 익숙해져 두세요.
하루 공부 루틴 예시
- 새 문제 1~2개 (60~90분): 한 문제에 30~40분을 써도 막히면 풀이를 확인합니다.
- 풀이 복기 (20분): 남의 풀이를 보고 내 코드와 무엇이 다른지 정리합니다.
- 오답 다시 풀기 (30분): 며칠 전 틀린 문제를 풀이를 보지 않고 다시 풉니다. 실력이 가장 많이 느는 시간입니다.
- 주말 모의고사: 실제 시험 시간에 맞춰 여러 문제를 한 번에 풀어 봅니다.
시험 당일 요령
- 모든 문제를 먼저 읽고 쉬운 문제부터 풉니다.
- 입력이 0이거나 1개일 때, 최댓값일 때 같은 경계 조건을 꼭 확인합니다.
- 부분 점수가 있는 시험이라면 완벽하지 않아도 일단 동작하는 코드를 제출합니다.
오답 노트는 이렇게
틀린 문제를 그냥 넘기면 같은 실수를 반복합니다. 오답 노트에는 코드 전체보다 아래 내용을 짧게 적어 두세요.
- 문제를 보고 처음 떠올린 방법과 그것이 왜 틀렸는지
- 정답 풀이의 핵심 아이디어 한 줄
- 시간 초과, 인덱스 실수, 경계 조건 누락처럼 실수의 종류
- 다시 풀어 볼 날짜
같은 유형의 실수가 반복되는 것이 보이면 그 유형을 집중적으로 연습할 때가 된 것입니다.
어떤 유형이 가장 어려웠는지, 효과를 본 공부 방법이 있다면 댓글로 공유해 주세요. 준비 중인 분들끼리 질문을 주고받기에도 좋습니다.