[프로그래머스]
[프로그래머스] 숫자 변환하기 C++
Hevton
2024. 3. 22. 22:41
반응형
다시 풀었는데, 옛날이랑 똑같이 풀었다 ㅋㅋ
#include <string>
#include <vector>
#include <queue>
using namespace std;
bool visit[1000001];
int bfs(int x, int y, int n) {
queue<pair<int, int>> que;
que.push({x, 0});
visit[x] = true;
while(!que.empty()) {
int value = que.front().first;
int depth = que.front().second;
que.pop();
if(value == y) return depth;
if(value + n <= y && !visit[value + n]) {
que.push({value + n, depth + 1});
visit[value + n] = true;
}
if(value * 2 <= y && !visit[value * 2]) {
que.push({value * 2, depth + 1});
visit[value * 2] = true;
}
if(value * 3 <= y && !visit[value * 3]) {
que.push({value * 3, depth + 1});
visit[value * 3] = true;
}
}
return -1;
}
int solution(int x, int y, int n) {
return bfs(x, y, n);
}
반응형