[伯俊]1697かくれんぼをする
11726 ワード
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Main {
public static void main(String args[]) throws Exception {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int K = sc.nextInt();
int[] Min = new int[100005];
Arrays.fill(Min, -1); //초기값을 다 -1로 설정
System.out.println(BFS(N, K, Min));
}
public static int BFS(int N, int K, int[] Min) {
int nextN = N;
int[] status = new int[3];
Queue<Integer> q = new LinkedList<Integer>();
q.add(nextN);
Min[nextN] = 0;
while (!q.isEmpty() && nextN != K) {
nextN = q.poll();
//다음에 이동할 좌표들
status[0] = nextN - 1; //뒤로 한칸
status[1] = nextN + 1; //앞으로 한칸
status[2] = nextN * 2; //순간이동
for (int i = 0; i < 3; i++) {
//배열을 벗어나지 않았는지 확인
if (status[i] >= 0 && status[i] <= 100000) {
//이전에 방문했는지 확인
if (Min[status[i]] == -1) {
//처음 간 곳이라면 큐에 넣고 상태를 전 위치값 +1 을 해준다.
q.add(status[i]);
Min[status[i]] = Min[nextN] + 1;
}
}
}
}
return Min[K];
}
}
Reference
この問題について([伯俊]1697かくれんぼをする), 我々は、より多くの情報をここで見つけました https://velog.io/@humblechoi/화요일テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol