코딩테스트
필요 역량
✅ 기술 역량 : 프로그래밍 문법, 알고리즘, 자료구조 등을 평가
✅ 문제 해결 능력 : 주어진 제시문을 잘 이해하고(상황 분석), 문제를 어떻게 분석하여(논리적 사고), 어떤 해결책을 찾아 내는지 확인
✅ 코드 구현 능력 : 이를 어떻게 코드로 구현하는지 파악 -> 스타일 가이드, 주석 등 코드를 통한 협업을 얼마나 잘하는지도 평가.
1. 기술 역량
- 자료 구조
Array/List, Linked List, Stack, Queue, Dequeue, Priority queue, Hash Table, Graph, Tree, Heap
- 알고리즘
Simulation/Implementation, Search, Sort, Greedy, Dynamic programming, Dijkstra(최단거리), Floyd-Warshall, Prim, Kruscal, DFS, BFS
2. 문제 해결 능력
주어진 제시문을 잘 이해하고, 문제를 분석하여, 해결책을 찾아 내는 능력
풀이를 말로 설명해 본다. 논리적으로 빈약한 부분을 찾기도 함.
-> 알고리즘 문제를 풀다가 막히면 답안을 찾아봐야 할까요 ?
시간을 정해두고, 넘겨도 못 풀면 답보기 !
3. 코드 구현 능력
기본 문법 학습 -> 기초 알고리즘 문제 풀이 -> 기출 문제 풀이
꾸준히 오래 풀 수 있도록 동기부여를 하자 !
💡 코딩 테스트 정복을 위한 꿀팁
1. 숨어있는 테스트 케이스(엣지 케이스)를 조심해야 한다.
2. 잘못된 풀이로 문제를 풀었다면 ?
- 당황 x
- 문제를 꼼꼼하게 읽기, 주로 BFS/DFS 를 헷갈리는 경우가 많음.
3. 타임 아웃을 조심 !
- 반복문 줄이기
- 백트래킹 알고리즘 이용하기
- 불필요한 연산 제거
- 중복되는 계산 재사용하기
성능 향상을 위해 전략적으로 접근 ! (내장 함수 활용 등)
기업별 코딩 테스트 유형 분석
기업 | 풀이시간 | 문제 개수 | 커트라인 | 주요 문제 유형 | 시험 유형 |
삼성 전자 | 3시간 | 2문제 | 1문제 | 완전 탐색, 구현, DFS/BFS, 시뮬레이션 | 오프라인 |
카카오 | 5시간 | 7문제 | 3~4문제 | 그리디, 구현, 문자열, 자료구조 | 온/오프라인 |
라인 | 2시간 | 5문제 | 2~3문제 | 그리디, 구현, 문자열, 탐색, 다이나믹 프로그래밍 | 온라인 |
*경우에 따라 SQL 이 출제되는 경우도 존재