Gidhub BE Developer

[BOJ] 스타트 링크

2018-02-05
goodGid

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조절을 하는게 중요해 보인다.


Recommend

Index