- 칠판에 글쓰기
코테 문제를 보고 그릴수 있는 그림을 그리는 것이다. 주어진 문제를 눈으로 볼수 있도록 하는 것이다. 또 문제에서 주어진 명제를 적어둠으로 조건을 찾을 수 있다.
- 알고리즘을 생각하기
가장좋은 방법은 문제를 통해 알고리즘을 떠올리는 상향식 전개지만 그럴 수 없는 상황이라면 하향식으로 알고리즘 어떤것을 적용해서 풀어야하는 것인가 떠올리자.
알고리즘 기법
정렬 Sorting (plus searching / binary search)
배열에서 특정 값을 찾아내는 방법
분할 정복 Divide and Conquer
큰 문제를 나누어 정복해 합치는 방법
동적계획법/메모제이션 Dynamic Programming / Memoization
하나의 큰 문제를 여러 개의 작은 문제로 나누어서 그 결과를 저장하여 다시 큰 문제를 해결할 때 사용
Greediness
선택의 순간마다 당장 눈앞에 보이는 최적의 상황만을 쫓아 최종적인 해답에 도달
Recursion
재귀함수를 사용한 문제해결
Algorithms associated with a specific data structure
데이터 구조와 관련된 알고리즘을 사용해 풀기
- 데이터 구조를 생각하자
적용해야할 데이터 구조를 생각하자
Array / Stack / Queue
HashSet / HashMap / HashTable / Dictionary
Tree / Binary tree
Heap
Graph