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
'🐣 알고리즘 삐약 > 💻 백준 삐약' 카테고리의 다른 글
57 삐약 : 백준 7562| 나이트의 이동 [바킹독 문제 풀이|BFS|JAVA] (0) | 2024.05.28 |
---|---|
56 삐약 : 백준 1012| 유기농 배추 [바킹독 문제 풀이|BFS|JAVA] (0) | 2024.05.27 |
54 삐약 : 백준 2178| 미로탐색 [바킹독 문제 풀이|BFS|JAVA] (0) | 2024.05.23 |
53 삐약 : 백준 5430| 회전하는큐 [바킹독 문제 풀이Deque|JAVA] (0) | 2024.05.22 |
52 삐약 : 백준 1021| 회전하는큐 [바킹독 문제 풀이Deque|JAVA] (0) | 2024.05.08 |