728x90
#include <iostream>
#include <queue>
using namespace std;
int dist[100002];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int N, K, time = 0;
cin >> N >> K;
fill(dist, dist + 100001, -1);
dist[N] = 0;
queue<int>q;
q.push(N);
while (dist[K]==-1)
{
int cur = q.front();
q.pop();
for (int dir : {cur-1,cur+1,2*cur})
{
if (dir < 0 ||dir >= 100000) continue;
if (dist[dir]!=-1) continue;
dist[dir] = dist[cur] + 1;
q.push(dir);
}
}
cout << dist[K];
}
728x90
'알고리즘 > 문제풀이 (C++,Kotlin)' 카테고리의 다른 글
[BOJ/C++] 7576번 토마토 : BFS 시작점 여러개 (0) | 2023.01.15 |
---|---|
[BOJ/C++] 4179번 불! : BFS 시작점 종류 여러개 (0) | 2023.01.14 |
[BOJ/C++] 2178번 미로 : BFS 거리 측정 (0) | 2023.01.13 |
[BOJ/C++] 1926번 그림 : BFS (0) | 2023.01.12 |
[BOJ/C++] 9012번 괄호 (0) | 2023.01.11 |