반응형
다시 풀었는데, 옛날이랑 똑같이 풀었다 ㅋㅋ
#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);
}
반응형
'[프로그래머스]' 카테고리의 다른 글
[프로그래머스] 피로도 (1) | 2024.03.22 |
---|---|
[프로그래머스] 리코쳇 로봇 C++ (0) | 2024.03.22 |
[프로그래머스] 미로 탈출 C++ (0) | 2024.03.22 |
[프로그래머스] 등산코스 정하기 (0) | 2024.03.22 |
[프로그래머스] 연속된 부분 수열의 합 (0) | 2024.03.21 |