코딩테스트 준비 팁
1. 코드 스니펫 또는 풀이집 준비
코드 스니펫은 빠르게 참고할 수 있는 코드 조각 모음입니다. 각 단계별로 자주 사용되는 알고리즘과 자료구조의 코드 스니펫을 준비해두면 학습과 복습에 큰 도움이 됩니다. 또한, 풀이집은 각 문제에 대한 상세한 해설과 풀이 과정을 담은 문서로, 문제 해결 능력을 향상시키는 데 유용합니다.
개인 GitHub 저장소를 이용하여 이 두 가지 파일을 준비하시길 권해드립니다. 또한 남들이 작성한 코드 스니펫과 풀이집도 참고하시면 좋습니다. GitHub에서 검색하여 유명한 저장소를 찾아보세요. star가 많은 저장소일수록 신뢰할 수 있는 경우가 많습니다.
JavaScript로 되어 있는 알고리즘 풀이 repo를 fork하여 자신만의 풀이집과 코드 스니펫을 업데이트 해나가세요. 후기 등을 모아놓은 repo도 많으니 참고하시길 바랍니다.
- 참고 링크: https://github.com/paullabkorea/programmersLv0/blob/main/Solution.md
- 참고 링크: https://github.com/paullabkorea/programmersLv0
- 참고 링크: https://github.com/search?q=javascript%20algo&type=repositories
2. 유용한 라이브러리 정리
JavaScript에는 코딩테스트 준비에 유용한 다양한 내장 메서드와 기능이 있습니다. 다음은 자주 사용되는 기능 목록입니다.
| 기능 | 설명 | 구분 |
|---|---|---|
| Array | 배열 조작 메서드 (map, filter, reduce 등) | 내장 |
| Set | 중복 제거, 집합 연산 | 내장 |
| Map | 키-값 쌍 저장, 해시맵 | 내장 |
| Object | 객체 조작 메서드 | 내장 |
| Math | 수학 함수 및 상수 제공 | 내장 |
| String | 문자열 메서드 | 내장 |
| JSON | JSON 파싱 및 직렬화 | 내장 |
3. 예외처리 및 디버깅 팁
코딩테스트에서는 제한된 시간 내에 문제를 해결해야 하므로, 예외처리와 디버깅 능력이 중요합니다. 다음은 몇 가지 팁입니다.
- 입력 검증: 문제에서 주어진 입력 범위를 항상 확인하고, 경계값 테스트를 수행하세요. 특히 길이가 0인 경우나 최대값에 가까운 입력에 대한 처리를 신경 써야 합니다.
- 예외 처리: 문제 중간에 제약사항으로 나와있는 것을 신경써서 예외처리를 해야 합니다. 예를 들어 "배열의 길이는 1 이상 1000 이하입니다"라는 조건이 있다면, 빈 배열에 대한 처리는 신경 쓰지 않아도 됩니다.
이러한 예외 처리는 단시간에 습득되지 않습니다. 다양한 문제를 풀어보면서 정답제출 했을 때 1 ~ 2개가 틀리는 경우에는 꼭 메모를 해두세요.
4. 속도 개선 문제
속도 개선 문제는 대부분 알고리즘 개선이나 class로 구현하는 문제가 많습니다. 시간 복잡도 개선이나 공간복잡도 개선으로 인해 시간 초과가 나는 문제는 요즘 코딩테스트에서는 거의 출제하지 않는 편입니다.
5. ChatGPT, Claude, Gemini 활용
만약 코딩테스트에서 생성형 AI 활용이 허락되거나 인터넷 검색이 허락된다면 아래 툴을 사용해서 빠르게 문제를 md 파일을 만들어 풀이를 정리할 수 있습니다.
- ChatGPT - Codex
- Claude- Claude Code
- Gemini - Gemini CLI
요즘은 아래와 같이 colab 안에서도 gemini를 사용할 수 있기 때문에 colab에서 문제와 풀이를 함께 정리하는 것을 권장합니다.
