#include <iostream>
#include <queue>
int main()
{
int A = 0;
int B = 0;
std::cin >> A >> B;
std::queue<std::pair<long long,int>> que = {};
que.push({ A,0 });
while (!que.empty())
{
long long lNumber = que.front().first;
int iCount = que.front().second;
que.pop();
if (lNumber == B)
{
std::cout << iCount + 1;
return 0;
}
if (lNumber * 10 + 1 <= B)
que.push({ lNumber * 10 + 1, iCount + 1 });
if (lNumber * 2 <= B)
que.push({ lNumber * 2, iCount + 1 });
}
std::cout << -1;
return 0;
}
딱히 설명할 게 없어보이네요. que로 크기를 확인하고 가능하다다면 입력, 불가능하다면 입력하지 않습니다.
'오늘의 알고리즘' 카테고리의 다른 글
[C++] 백준 17144 미세먼지 안녕! (0) | 2022.11.08 |
---|---|
[C++] 백준 17070 파이프 옮기기 1 (0) | 2022.11.07 |
[C++] 백준 15686 치킨 배달 (0) | 2022.11.05 |
[C++] 백준 15666 N과 M (12) (0) | 2022.11.04 |
[C++] 백준 15663 N과 M (9) (0) | 2022.11.03 |