Problem
Problem URL : 스타트 링크
Answer Code
#include<iostream>
#include<queue>
using namespace std;
int dp[1000001];
queue<int> q;
int main(){
int f,s,g,u,d;
cin >> f >> s >> g >> u >> d;
for (int i=1; i<=f; i++) {
dp[i] = 987654321;
}
dp[s] = 0;
q.push(s);
while (! q.empty()) {
int top = q.front();
q.pop();
for(int i=0; i<2; i++){
int nx = top;
nx += i == 0 ? u : d * -1 ;
if( 0 < nx && nx <=f && dp[nx] > dp[top] + 1){
dp[nx] = dp[top] + 1;
q.push(nx);
}
}
}
if( dp[g] == 987654321)
cout << "use the stairs" << endl;
else
cout << dp[g] << endl;
return 0;
}
Feed Back (18. 02. 05)
-
알쿡 대회에 출제되었던 구현 문제
-
대회 때 조급해서 그런가 틀렸던 문제인데 여유롭게 다시 푸니 쉽게 맞았다.
-
Answer / Wrong 차이는 간단한 조건문이였다. 아무래도 시험 때 나의 Face조절을 하는게 중요해 보인다.