출처 : 인프런 - 코딩테스트 [ ALL IN ONE ]
자료구조
선형 자료구조
- array
- dynamic array
- linked list
- queue
- stack
- hash table
비선형 자료구조
자료구조를 배워야 하는 이유
BFS -> Queue
다익스트라 -> heap
자료구조를 배워야 어떤 알고리즘을 쓸지 알 수 있다.
결과가 많이 달라짐.
여러 관점 다양한 방식 을 배우자
알고리즘
- 문제 해결 방법; 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법
- 자주 쓰이는 문제 해결 방법(알고리즘)은 패턴화
- BFS, DFS, Binary Search, Dijkstra 등
- 한 문제를 해결할 수 있는 알고리즘은 다양하다.
- 각 문제에 적합한 알고리즘을 선택할 수 있어야 한다.
- 알고리즘을 평가할 수 있어야 한다.
알고리즘 평가기준
- 시간 복잡도(Time Complexity)
- 공간 복잡도(Space Complexity)
- 구현 복잡도
시간 복잡도 > 구현 복잡도
시간 복잡도와 공간 복잡도는 보통 trade-off 관계입니다. 실행시간을 줄이기 위해서는 메모리를 더 사용해야 하고, 메모리 사용량을 줄이다보면 실행시간이 늘어나게 됩니다. 시간복잡도를 미리 계산하여 문제 조건을 딱 맞추면서도 구현하기 쉬운 알고리즘을 선택할 수 있는 방법도 같이 훈련