이 중 코딩 테스트에서 보편적으로 활용되는 자료 구조는 아래와 같습니다.
배열 (array)
리스트, 벡터 (vector) (수학에서 나오는 '크기와 방향을 갖는 값'과는 이름만 같고 다른 개념입니다.)
연결 리스트 (linked list)
스택 (stack), 큐 (queue), 덱 (deque)
우선순위 큐 (priority queue), 힙 (heap)
트리 구조 (tree)
이진 트리 (binary tree)
그래프 (graph)
정점 (node)과 간선 (edge)
양방향 간선, 단방향 간선
셋, 맵
Java: tree set, tree map, hash set, hash map
해시 함수 (hash function)의 정의와 개념
보편적으로 사용되는 알고리즘은 아래와 같습니다.
단순 구현
탐욕법 (greedy method)
브루트 포스 (brute force) - 모든 경우의 수를 시도해 보기
깊이 우선 탐색 (depth first search; DFS), 너비 우선 탐색 (breadth first search; BFS)
정렬 (sort)
이진 탐색 (binary search)
동적 계획법 (dynamic programming)
다익스트라 알고리즘 (Dijkstra algorithm)
크루스칼 알고리즘 (Kruskal algorithm)
그 외에 플로이드-와셜 알고리즘 (Floyd-Warshall algorithm), 세그먼트 트리 (segment tree)처럼 가끔 등장하는 알고리즘도 있습니다.
출처: https://katfun.tistory.com/entry/개발자-취업을-위한-코딩-테스트-준비-방법
[하고 싶은 것을 즐겁게:티스토리]