이우의 개발일지
[백준 C/C++] 16953번 분수찾기 - 자료형 조심!! 본문
백준 16953번
#include<iostream>
#include<queue>
using namespace std;
int main() {
long long a, b;
cin >> a >> b;
queue<pair<long long, int>> Q;
int minn = 1000000;
Q.push({ a,0 });
while (!Q.empty()) {
long long n1 = Q.front().first;
int n2 = Q.front().second;
if (n1 == b) {
minn = min(minn, n2 + 1);
Q.pop();
continue;
}
if (n1 * 2 <= b) {
Q.push({ n1 * 2, n2 + 1 });
//cout << "n1*2 : " << n1 * 2 << '\n';
}
if (n1 * 10 + 1 <= b) {
Q.push({ n1 * 10 + 1, n2 + 1 });
//cout << "n1*10 + 1 : " << n1 * 10 + 1 << '\n';
}
Q.pop();
}
if (minn == 1000000) {
minn = -1;
}
cout << minn << '\n';
return 0;
}
반응형