최종 수정 24.12.25
코딩테스트 공부 방법
A. 자료구조를 배우면서 알고리즘을 푸는 방법
장점
- 실전 적용이 즉각적으로 가능하다. 예를 들어, 스택을 배운 직후 DFS를 배우면 스택이 실제로 어떻게 쓰이는지 바로 이해할 수 있다.
- 이론과 실제 활용을 동시에 배워 지루함을 덜 수 있다.
- 자료구조와 알고리즘의 연관성을 자연스럽게 이해할 수 있다. 예를 들어, 트리를 배운 후 바로 트리 순회 알고리즘을 배우면 개념과 실전이 더 잘 연결되는 느낌이 든다.
B. 자료구조를 먼저 공부하고 알고리즘을 푸는 방법
장점
- 기초가 탄탄해진다. 알고리즘은 대부분 여러 자료 구조를 복합적으로 사용하므로, 자료구조에 대한 이해가 먼저 필요하다.
- 학습 구조가 체계적이다. 기초부터 응용까지 단계적으로 진행되어 개념을 놓치지 않고 배울 수 있다.
- 알고리즘을 배울 때 자료구조 선택에 대한 고민 없이 알고리즘 로직 자체에 집중할 수 있다.
나는 방법 B으로 공부할 생각이다. 이런 형태의 공부가 나에게 맞고, 마음이 좀 더 편한 느낌이다.
Q. 자료구조 및 알고리즘을 공부하는 순서와 그 이유는?
순서 | 자료구조 | 이유 |
1 | 배열 | 가장 기본이 되는 자료구조 다른 모든 자료구조의 기반이 됨 가장 단순하면서 필수적인 개념 |
2 | 스택 | 배열을 기반으로 구현 가능한 단순한 구조 LIFO 구조로 개념 이해가 쉬움 DFS의 기초가 되는 자료구조 |
3 | 큐 | 스택과 비슷한 난이도의 선형 구조 FIFO 구조로 스택과 대비되는 개념 BFS의 기초가 되는 자료구조 |
4 | 해시 | 배열의 확장된 개념 검색을 효율적으로 수행하는 방법 학습 key-value 구조의 이해 필요 |
5 | 트리 | 비선형 구조의 시작 계층적 데이터를 다루는 기본 이진 트리, 이진 탐색 트리의 기초 |
6 | 그래프 | 가장 복잡한 자료구조 앞의 모든 개념이 총동원됨 실제 문제 해결에 광범위하게 활용 |
순서 | 알고리즘 | 이유 |
7 | 정렬 | 가장 기본적인 알고리즘 시간복잡도 개념을 이해하기 좋음 여러 알고리즘의 기초가 됨 |
8 | 이진 탐색 | 정렬된 데이터에서의 효율적인 탐색 분할 정복의 기본 개념 학습 시간복잡도 개선의 대표적 예시 |
9 | DFS & BFS | 그래프 & 트리 탐색의 기본 스택과 큐의 실제 활용 많은 문제의 기본 해결 방법 |
10 | 백트래킹 | 완전탐색의 최적화 DFS를 기반으로 한 심화 테크닉 가지치기 개념 학습 |
11 | 동적 계획법 | 최적화 문제 해결의 핵심 문제를 부분으로 나누는 방법 이전 모든 개념의 이해가 필요 |
12 | 그리디 | 최적해를 구하는 직관적 방법 DP(동적 계획법)와 대비되는 접근 방법 모든 개념을 종합적으로 활 |
'코딩테스트 > 가이드 & 마음가짐' 카테고리의 다른 글
코딩테스트에 대한 정리 (4) | 2023.08.08 |
---|---|
프로그래밍을 위해 무엇을 해야 할까? (0) | 2023.03.16 |
[라매개발자] 자바스크립트로 백준 문제 푸는 법 (0) | 2022.11.23 |
[라매개발자] 자바스크립트로 백준 가이드 (0) | 2022.11.22 |
댓글