반응형
처음에 N==K인 반례를 놓쳤었습니다.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<Integer> Q = new ArrayList<>();
int N = sc.nextInt();
int K = sc.nextInt();
if (N==K){
System.out.print(0);
System.exit(0);
}
int[] dist = new int[100001];
Arrays.fill(dist, -1);
dist[N] = 0;
Q.add(N);
while(!Q.isEmpty()){
int cur = Q.remove(0);
for (int dir : new int[]{cur-1, cur+1, cur*2}){
if (dir == K){
System.out.print(dist[cur]+1);
System.exit(0);
}
if (dir<0 || dir>=dist.length) continue;
if (dist[dir]>=0) continue;
dist[dir] = dist[cur]+1;
Q.add(dir);
}
}
}
}
반응형
'Algorithm' 카테고리의 다른 글
백준 7569번 토마토 [ Java ] (0) | 2021.01.01 |
---|---|
백준 1012번 유기농 배추 [ Java ] (0) | 2021.01.01 |
백준 4179번 불! [ Java ] (0) | 2020.12.31 |
백준 11656번 접미사 배열 [ Java ] (0) | 2020.12.30 |
백준 7576번 토마토 [ Java ] (0) | 2020.12.30 |