#include<iostream>
#include<queue>
using namespace std;
queue <int>q;
int visited[100001] = { 0, };
int n, k;
int bfs() {
q.push(n);
visited[n] = 1;
while (!q.empty()) {
int f = q.front(); //n
q.pop();
if (f == k) {
return visited[f]-1;
}
if (f + 1 < 100001 && visited[f + 1]==0) {
q.push(f + 1);
visited[f+1] = visited[f]+1;
}
if (f - 1 >= 0 && visited[f - 1]==0) {
q.push(f - 1);
visited[f - 1] = visited[f] + 1;
}
if (f * 2 < 100001 && visited[f * 2] == 0) {
q.push(f * 2);
visited[f * 2] = visited[f] + 1;
}
}
}
int main() {
ios_base::sync_with_stdio;
cin.tie(NULL);
cin >> n >> k;
cout << bfs();
return 0;
}
'PS > 백준' 카테고리의 다른 글
[C++] 백준 2667번: 단지번호붙이기 (0) | 2020.11.29 |
---|---|
[C++] 백준 2178번: 미로 탐색 (0) | 2020.11.29 |
[C++] 백준 16496번: 큰 수 만들기 (0) | 2020.11.23 |
[C++] 백준 1676번: 팩토리얼 0의 개수 (0) | 2020.11.22 |
[C++] 백준 1929번: 소수 구하기 (0) | 2020.11.22 |
댓글