반응형
'적어도 몇 번' 이란 말과 탐색 문제란 점에서 BFS를 사용해야함을 알 수 있다.
#include <iostream>
#include <queue>
using namespace std;
int F, S, G, U, D;
int d[1000001]={};
void BFS() {
queue<int> q;
q.push(S);
d[S]=1;
while(!q.empty() && q.front()!=G) {
int now = q.front();
q.pop();
if(now+U<=F && d[now+U]==0){
q.push(now+U);
d[now+U]=d[now]+1;
}
if(now-D>0 && d[now-D]==0){
q.push(now-D);
d[now-D]=d[now]+1;
}
}
if(!q.empty()) cout << d[G]-1;
else cout << "use the stairs";
}
int main() {
cin >> F >> S >> G >> U >> D;
BFS();
}
'PS' 카테고리의 다른 글
[PS] 백준 2468번 - 안전 영역 (0) | 2023.05.17 |
---|---|
[PS] 백준 2644번 - 촌수계산 (0) | 2023.05.17 |
[PS] 백준 1697번 - 숨바꼭질 (0) | 2023.05.16 |
[PS] 백준 7576번 - 토마토 (0) | 2023.05.16 |
[PS] 백준 1012번 - 유기농 배추 (1) | 2023.05.16 |