BFS 3

[프로그래머스] 가장 먼 노드

programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 로직 BFS를 이용하여 1에서 각 노드까지의 최단거리들을 구하고 그 중 가장 긴 거리를 가진 노드 개수를 카운트하여 리턴해주었다. 코드 import java.util.*; class Solution { public int solution(int n, int[][] edge) { int[] distances = new int[n+1]; distances[1] = 1; Hashtable edgeInfo = new Hashtable(n); // ini..

코테 준비 2020.10.23

[프로그래머스] 게임 맵 최단거리

programmers.co.kr/learn/courses/10302/lessons/62951 [Java/문제풀이] 코딩테스트 광탈 방지 Kit: Java편 - Step 1. 게임 맵 최단거리 직접 풀어보기 × 프로그래머스의 모든 동영상 강의는 구매 후 열람 기간 제한이 없습니다. 또한 이 강의는 Java 기반으로 준비되어 있느니 해당 언어에 대한 지식은 필수입니다! 코딩테스트 준비,당신만 힘든게 programmers.co.kr 로직 그렇게 어렵지는 않았다 최단거리 문제는 보통 BFS가 유리하다. 단 path를 다 기억해야하는 경우에는 DFS 방식을 사용하는 것이 좋다. 처음에는 x, y좌표를 어떻게 queue에 넣을까 하다가 그냥 Node라는 inner class를 만들어서 진행했다. (inner Cla..

코테 준비 2020.10.22

[프로그래머스 - BFS] FloodFill

초기 변수 설정 check[][] : n*m 사이즈의 boolean 타입 2D Array BFS과정에서 grouping 완료된 좌표 => True queue : 현재 바라볼 좌표(x,y)를 pop, 바라보는 좌표의 이웃들 (x-1, y) (x+1, y) (x, y-1) (x, y+1)을 append 로직 이중 for 문으로 n*m 사이즈의 좌표를 차례로 탐색 if check하지 않은 좌표 해당 좌표를 bfs 탐색하며 grouping 한 후 count +=1 해준다. (BFS 탐색 한 번 == grouping 한 번) return count BFS 탐색 queue.append(탐색 시작 좌표) while queue is not empty: queue.popleft() # 현재 바라봐야할 좌표 pop if ..

코테 준비 2020.09.05