| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 프로그래밍기초
- 정렬
- 자바공부
- 자바기초
- 파이썬
- 메모리관리
- Java
- 코딩공부
- 예외처리
- 자바개발
- 객체지향
- 코딩인터뷰
- 자료구조
- 백준
- 코딩테스트
- 프로그래머스
- 코딩테스트팁
- 알고리즘공부
- HashMap
- 가비지컬렉션
- 멀티스레드
- 개발자취업
- 개발공부
- 클린코드
- 개발자팁
- 자바
- 알고리즘
- JVM
- 코딩테스트준비
- 자바프로그래밍
- Today
- Total
코드 한 줄의 기록
면접 합격을 부르는 코딩 테스트 문제 유형과 준비 비법 본문
코딩 테스트는 개발자 면접의 관문이자, 실력을 단번에 보여줄 수 있는 기회입니다. 꾸준히 출제되는 핵심 유형 7가지와, 제가 직접 경험하며 정리한 효율적 학습법을 알려드립니다. 이 글을 통해 막막했던 알고리즘 준비가 한결 명확해지고, 합격의 감격을 나눌 수 있길 바랍니다.
해시(Hash) & 맵(Map) 활용 문제
첫 회사 코딩 테스트 때, 전화번호 중복 검사를 ‘Map’ 없이 이중 for문으로 돌려 시간 초과를 받은 기억이 납니다. 이후 해시맵으로 조회 상수를 경험하며 진가를 느꼈죠.
유형 설명
- 중복 체크, 카운팅: 배열이나 문자열에서 빈도 세기
- 투명도 검사: 아나그램(anagram) 판별, 부분 배열 합 비교 등
준비 과정
1. 기본 문법 복습: JavaScript의 `Map`, Python의 `dict`, Java의 `HashMap` 사용법 마스터
2. 빈도 테이블 문제 풀이: LeetCode “Two Sum,” “Valid Anagram” 반복
3. 시간 복잡도 자가 진단: O(n²) 풀이와 O(n) 풀이를 직접 작성해 비교
풀이 팁
- “Two Sum”은 키-값 저장 전에 complement(타깃-현재값)를 먼저 검사
- 문자열 아나그램: 두 배열의 카운트 배열(크기 26) 활용
슬라이딩 윈도우 & 투 포인터
“연속된 부분 합 최대값” 질문에 윈도우 크기를 하드코딩했다가 실패. 이후 공부하며 포인터 두 개만으로 문제 해결하는 쾌감에 빠졌습니다.
유형 설명
- 연속 부분합/최대값: 고정 길이 혹은 가변 길이 윈도우
- 쌍 찾기: 정렬된 배열에서 투 포인터로 합이나 차 검사
준비 과정
1. 핵심 개념 이해: “윈도우의 시작과 끝” 포인터 움직임 규칙 정리
2. 예제 반복 풀이: “Subarray Sum Equals K”, “Container With Most Water”
3. 시뮬레이션 다이어그램 작성: 포인터 이동을 종이에 그림으로 그려보기
풀이 팁
- 가변 윈도우: while 문 안에서 start 포인터 이동 시 조건 갱신 꼼꼼히
- 투 포인터: 정렬 단계 필수, low/right 포인터 간 의존성 파악
그리디(Greedy) 알고리즘
채점 환경에서 탐욕법을 의심만 하다 시간 부족으로 포기. 단순하지만 보석 같은 규칙을 찾아내는 연습이 급선무였습니다.
유형 설명
- 활동 선택, 최소 비용: 회의실 배정, 동전 거스름
- 최대 이익: 배낭 문제의 근사 해법
준비 과정
1. 탐욕 선택 속성 확인: 로컬 최적 → 글로벌 최적 검증
2. 대표 문제 풀이: “Fractional Knapsack,” “Jump Game II”
3. 수학적 직관 연습: 증명 없는 코드는 미완성! 그리디 성질 증명 간단히 노트에 정리
풀이 팁
- 그리디가 통하지 않는 케이스(예: 0-1 배낭)와 비교하며 이해
- 선택 조건 우선순위(정렬 키) 고민: 무게 대비 가치, 마감 시간 등
DFS/BFS 그래프 탐색
친구와 칭찬 속에 재귀 깊이 초과 에러를 만난 날이 아직 잊히지 않습니다. 재귀/반복 번갈아 쓰며 스택 직접 다뤄보니 개념이 명확해졌습니다.
유형 설명
- 경로 찾기, 연결 요소: 미로 탐색, 섬의 개수
- 최단 경로: 가중치 없는 그래프에서 최단 간선 탐색
준비 과정
1. 인접 리스트 vs 행렬: 메모리·속도 이점 비교
2. 재귀/반복 코드: 스택 직접 사용해 비재귀 DFS 구현
3. 대표 예제: “Number of Islands,” “Clone Graph”
풀이 팁
- 재귀 깊이 제한 대비: 언어별 `sys.setrecursionlimit`, 스택 활용
- BFS 큐에서 방문 처리 시점(삽입 vs 꺼낼 때) 구분
동적 계획법(DP)
DP는 “내가 왜 이걸 물려줄까” 하는 기분. 하지만 “피보나치”부터 “최장 증가 부분 수열”까지 차근차근 밟으니 퍼즐 완성의 쾌감이 컸습니다.
유형 설명
- 1차원 DP: 피보나치, 계단 오르기
- 2차원 DP: 편집 거리, 최장 공통 부분 수열(LCS)
준비 과정
1. 부분 문제 정의: DP 테이블(dimensions)과 상태 전이 함수 구체화
2. 종이로 손코딩: 작은 입력에 대해 DP 테이블 직접 채워보기
3. 메모이제이션 vs 타뷸레이션: 두 방법 모두 구현 연습
풀이 팁
- 상태 전이식은 “현재 결정 + 이전 최적값” 구조
- 메모리 최적화: 2차원→1차원 압축 가능성 판단
이진 탐색(Binary Search)
“정렬된 배열에서 특정 값 찾기”는 기본, “답의 범위 찾기” 문제에 고전. lower_bound/upper_bound 패턴을 외우고 나니 폭넓게 적용 가능해졌습니다.
유형 설명
- 기본 탐색: 값 유무 확인
- 파라메트릭 서치: 최적화 문제(예: 최대 최소값)
준비 과정
1. 템플릿 암기: 좌표계(left=0,right=n) vs (left=0,right=n-1)
2. 응용 문제: “Aggressive Cows,” “Capacity To Ship Packages”
3. 경계 값 테스트: low, mid, high가 어떻게 변하는지 표로 정리
풀이 팁
- 무한 루프 방지: mid 계산 시 `(left+right)//2` vs `left+(right-left)//2`
- 조건에 따라 `right=mid` vs `right=mid-1` 구분
자료 구조 심화: 스택/큐/우선순위 큐
최단 경로에 우선순위 큐를 써야 한다는 것만 알고, `heapq` 사용법이 미숙해 시간 초과. 직접 팩토리얼 구현하듯 heap 삽입·삭제를 연습했습니다.
유형 설명
- 스택: 괄호 검사, 후위 표기식 계산
- 큐: 바이러스 퍼짐 시뮬레이션
- 우선순위 큐: 다익스트라, 스케줄링
준비 과정
1. 언어별 라이브러리: Python `deque`/`heapq`, Java `PriorityQueue`
2. 직접 구현: 단순 배열→링크드 리스트 큐 구현해 보기
3. 대표 문제: “Dijkstra’s Algorithm,” “Evaluate Reverse Polish Notation”
풀이 팁
- 연산 순서 주의: 큐 vs 덱 메서드 차이
- 커스텀 비교 함수 활용법 숙지
최종 점검 & 모의고사 활용법
매주 토요일마다 삼성·네이버·카카오 기출 모의고사를 풀었더니 긴장감이 훨씬 줄었습니다. 실제 시험과 유사한 환경에서 실전 감각을 기르는 것이 핵심이었습니다.
준비 과정
1. 데드라인 설정: D-30까지 모든 유형 1회 이상 완독
2. 주간 모의고사: 온라인 저지 사이트에서 타임어택
3. 오답 노트: 카테고리별 착오 유형 기록, 주기적 리뷰
마지막 마무리 팁
- 코드 리뷰: 스스로 작성한 코드를 3일 뒤에 다시 읽어보기
- 페어 프로그래밍: 동료와 번갈아가며 실시간 리뷰 세션
- 멘탈 관리: 적절한 휴식과 수면으로 집중력 유지
이 글을 따라 차근차근 준비한다면, 어느 회사 면접이든 자신 있는 코드와 체계적인 설명으로 면접관에게 깊은 인상을 남길 수 있을 것입니다. 준비 과정에서의 시행착오를 디딤돌 삼아, 곧 합격 소식을 띄워 보세요!
단기간에 코딩 테스트 정복하기: 실전 경험담으로 풀어가는 준비법과 꿀팁
코딩 테스트는 개발자로 가는 첫 관문이자 동시에 가장 두려운 시험 중 하나였다. 나도 처음엔 막막했고, 무수한 알고리즘과 자료구조를 마주하면서 좌절하기 일쑤였다. 하지만 꾸준한 연습과
byteandbit.tistory.com
'코딩테스트' 카테고리의 다른 글
| 코딩테스트 처음인 너, 이렇게 준비해봐 - 초보자를 위한 현실적 가이드 (0) | 2025.11.08 |
|---|---|
| 입사 코딩테스트 언어 선택 완벽 가이드: Python vs Java vs C++ 실전 비교 분석 (0) | 2025.11.07 |
| 코딩테스트 준비 완벽 로드맵: 6개월 체계적 공부법 가이드 (0) | 2025.11.05 |
| 코딩테스트란 무엇이고 왜 중요할까? 취업을 준비하며 알아본 실전 가이드 (0) | 2025.10.30 |
| 단기간에 코딩 테스트 정복하기: 실전 경험담으로 풀어가는 준비법과 꿀팁 (0) | 2025.09.04 |