반응형
기본 BFS 코드에서 방문배열 말고 parent 배열을 추가해주었습니다.
import java.util.*;
public class Main {
public static void main(String[] args){
Queue<Integer> Q = new LinkedList<>();
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int K = sc.nextInt();
int[] dist = new int[100001];
int[] parent = new int[100001];
Arrays.fill(dist, -1);
dist[N] = 0;
Q.offer(N);
while (!Q.isEmpty()){
int cur = Q.poll();
if (cur==K){
StringBuilder sb = new StringBuilder();
System.out.println(dist[cur]);
while (cur!=N){
sb.insert(0, cur+" ");
cur = parent[cur];
}
sb.insert(0, cur+" ");
System.out.print(sb);
System.exit(0);
}
for (int n : new int[]{cur-1, cur+1, cur*2}){
if (n<0 || n>100000 || dist[n]>=0) continue;
dist[n] = dist[cur]+1;
parent[n] = cur;
Q.offer(n);
}
}
}
}
반응형
'Algorithm' 카테고리의 다른 글
백준 10813번 공 바꾸기 [ Java ] (0) | 2021.01.03 |
---|---|
백준 10819번 차이를 최대로 [ Java ] (0) | 2021.01.03 |
백준 13549번 숨바꼭질 3 [ Java ] (0) | 2021.01.03 |
백준 6593번 상범 빌딩 [ Java ] (0) | 2021.01.02 |
백준 2573번 빙산 [ Java ] (0) | 2021.01.02 |