🐣 알고리즘 삐약/💻 백준 삐약
55 삐약 : 백준 1697| 숨바꼭질 [바킹독 문제 풀이|BFS|JAVA]
우주수첩
2024. 5. 24. 13:24
728x90
https://www.acmicpc.net/problem/1697
package BKD_0x9_BFS;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
public class BOJ_1697 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
int[] dist = new int[100001];
Queue<Integer> q = new LinkedList<>();
int count=0;
q.offer(N);
dist[N]=1;
while(!q.isEmpty()){
int idx = q.poll();
if(idx==K) {
count= dist[idx]-1;
break;
}
if(idx-1>=0 && dist[idx-1]==0){
dist[idx-1] = dist[idx]+1;
q.offer(idx-1);
}
if(idx+1<=100000 && dist[idx+1]==0){
dist[idx+1] = dist[idx]+1;
q.offer(idx+1);
}
if(idx*2<=100000 && dist[2*idx]==0){
dist[2*idx] = dist[idx]+1;
q.offer(2*idx);
}
}
System.out.println(count);
br.close();
}
}
입력 조건을 꼼꼼하게 보지 않고 마음대로 범위지정해서 실행했다가는 어메무시한 런타임 에러를 맞이하게 됩니당
out of boundary 뜨니까 꼭 주어진 입력 조건 안에서 실행하긔
그래도 저번에 bfs하나 풀고 해봤다고 자신감 붙어서 재미있게 문제 풀었던 것 같당
728x90