코딩테스트/이론
-
BFS / DFS (java)코딩테스트/이론 2021. 11. 18. 15:35
1. BFS (너비 우선 탐색) 끝까지 탐색하는게 아닌 층별로 탐색하면서 해답을 찾으면 종료 최단거리 구하는 문제에서 사용 (Queue) 문제:https://www.acmicpc.net/problem/2178 더보기 Queue queue = new LinkedList(); queue.offer(new Node(0,0,0)); //시작노드 삽입 visited[0][0] = 0; while(!queue.isEmpty()){ Node node = queue.poll(); node.step++; if(node.x == (N-1) && node.y == (M-1)){ //종료조건 (해답을찾으면종료) output.write(node.step+"\n"); break; } //다음 층의 탐색할 노드들 (상하좌우) if..
-
알고리즘 문제풀이 유형정리 [작성중]코딩테스트/이론 2021. 11. 16. 16:51
※ 빠른 탐색(search)가 필요한 경우 * 이진탐색(Binary Search) 사용 설명 - https://walon-h.tistory.com/18?category=1004560 ※ 최대값, 최소값을 "자주" 구하는경우 * Priority Queue 사용(Heap) - 배열로 할시 정렬을 자주해야 하기때문에 heap방식이 유리하다. 설명 - https://walon-h.tistory.com/20?category=971067 문제 - https://programmers.co.kr/learn/courses/30/lessons/42626 ※ 모든 노드를 방문해야 하는 경우 * dfs 사용 설명 - https://walon-h.tistory.com/22 ※ 최단거리를 구해야 하는 경우 * bfs 사용 (Qu..