A->B - 16953
2025. 2. 12. 15:28ㆍPS/백준
문제
https://www.acmicpc.net/problem/16953
느낀점
하나의 루트로 갈 때 최단거리와 같은 비용을 계산할 때, bfs를 많이 사용하는데, 가짓수를 셀 때도 이러한 방식으로 접근하면 유용하다는 것을 배웠다.
풀이
#include <iostream>
#include <queue>
#define pii std::pair<long, long>
int main()
{
long A, B;
std::cin >> A >> B;
std::queue<pii> queue;
queue.push(std::make_pair(A, 0));
while (!queue.empty())
{
pii temp = queue.front();
queue.pop();
if (temp.first == B)
{
std::cout << temp.second + 1;
return 0;
}
if (temp.first * 2 <= B)
{
queue.push(std::make_pair(temp.first * 2, temp.second + 1));
}
if (temp.first * 10 + 1 <= B)
{
queue.push(std::make_pair(temp.first * 10 + 1, temp.second + 1));
}
}
std::cout << -1;
return 0;
}
'PS > 백준' 카테고리의 다른 글
양 한마리... 양 두마리... - 11123 (0) | 2025.02.12 |
---|---|
그대, 그머가 되어 - 14496 (0) | 2025.02.12 |
팰린드롬 만들기 - 1254 (0) | 2025.02.12 |
비슷한 단어 - 2607 (0) | 2025.02.12 |
오리 - 12933 (0) | 2025.02.12 |