서론
비전공자로 코딩테스트 첫 준비는 너무 막막했다.
정보의 양은 너무 방대하고, 어디서부터 어떻게 준비해야할 지 모르겠어서
일단 보이는 정보들을 최선으로 긁어모아 결론을 도출했다.
초심자 공부 방법
전반적인 공부
각 알고리즘 개념이해 ➡️ 코드 구현 ➡️ 기본문제, 코드 따라해보기 (보지 않고도 코드 작성할 수 있을 정도) + 암기 필요 ➡️ 유사한 문제 풀어보기 (10개 이상)
+ 시간 내에 못 풀었을 경우
1. 풀이 보고서 문제 풀이 : 코드 한줄 한줄 완벽히 이해하기
2. 백지 상태에서 테스트 케이스 해보기
(코드가 왜 있는지 모르겠다? 코드 삭제 후 실행시켜보기)
문제풀이
- 1문제 당 시간을 정해놓고 풀이 (30분 이내로, 최대 1시간까지)
- 하루에 몇 과목씩 돌아가면서 공부 (2과목에 각2문제 = 4문제 정도?)
- 틀린 문제 복습하면서 반복하기
⭐문제 풀이 시 가장 중요한 것⭐
이 알고리즘 선택을 어떻게 떠올렸는지가 중요
문제를 풀 때 습관화 하기
- 아이디어 : 문제를 어떻게 풀 것인지 여기서 대부분 설계하고 진행
- 시간 복잡도 : 내가 설계한 방법의 시간 체크
- 자료 구조 : 자료구조를 어떻게 사용할지 미리 계획
숫자의 경우 최대자리에 따라서 데이터 타입 예상
계획
: 파워 J는 계획이 없으면 불안해요...
공부 순서
- 빅오 표기법 (시간복잡도에 대해서)
- 입력, 출력 함수
- 문자열
- 자료구조 공부
Array, Linkedlist, Stack, Queue, Heap, Tree, Graph, HashTable...
- 알고리즘 개념 공부 (출제 빈도순으로)
⭐ 겹치는 부분이 많다⭐
4-1. 완전 탐색 - 브루트 포스(Brute Force)
4-2. 문자열
4-3. 단순 구현
4-4. BFS / DFS (그래프 탐색 방법) + 이분탐색(이진탐색)
4-5. Hash (Set, Map)
여기까지 완벽하다면 ⬇️⬇️⬇️⬇️⬇️
공부할게 산더미..
정렬, 다이나믹 프로그래밍(DP), 최단경로(다익스트라, 벨만-포드, 플로이드-워셜), 그리디, 최소신장트리(MST : 크루스칼, 프림), 투포인터, 백트래킹... 진짜 많다
참고 자료
https://haesoo9410.tistory.com/351
- 유튜브에 코딩테스트 준비방법 검색
: 개발자 장고, 동빈나, 큰돌의 터전, 개발자 강민철, 쩜튜브, 컴공선배 참조