λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

πŸ“ μ•Œκ³ λ¦¬μ¦˜/Softeer

[C++/Softeer] Lv1. μœ„ν—˜ν•œ νš¨λ„

https://softeer.ai/practice/7368

 

Softeer - ν˜„λŒ€μžλ™μ°¨κ·Έλ£Ή SWμΈμž¬ν™•λ³΄ν”Œλž«νΌ

 

softeer.ai

 

ν˜„λŒ€ μ†Œν”„ν‹°μ–΄ Lv1. μœ„ν—˜ν•œ νš¨λ„ C++ 풀이

 

μ–΄μ©Œλ‹€ λ³΄λ‹ˆ νš¨λ„ μ‹œλ¦¬μ¦ˆλ§Œ ν‘ΈλŠ”μ€‘μ΄λ‹€γ…‹γ…‹

μ›λž˜λŠ” λ‚œμ΄λ„κ°€ Lv2μ˜€λŠ”λ° Lv1둜 λ‚΄λ €μ˜¨ λ“―.

μ•ž/λ’€λ‘œ 갈 λ•Œ, μ›€μ§μž„/정지할 λ•Œμ˜ 경우만 잘 λ‚˜λˆ„λ©΄ μ‰½κ²Œ 성곡할 수 μžˆλŠ” λ¬Έμ œμž…λ‹ˆλ‹€!


#include<iostream>
using namespace std;

int main(int argc, char** argv)
{
    int a; int b; int d;
    cin >> a >> b >> d;
    int now = 0;
    int time = 0;
    int cnt = 0;
    bool isCatch = false;
    while(1){
        cnt ++;
        if(!isCatch){
            if(cnt%2==1) { // μ•žμœΌλ‘œ 이동
                if(d-now < a) { // μˆ λž˜μ™€μ˜ 거리가 μ–Όλ§ˆ μ•ˆ λ‚¨μ•˜μ„ λ•Œ
                    time += (d-now);
                    now += (d-now);
                } else{
                    time += a;
                    now += a;
                }
                if(d == now) { isCatch = true; cnt = 0; }
            } else{ // 정지
                time += b;
            }
        }
        else{
            if(cnt%2==1) { // 도망가기
                if(now < b) { // λ„μ°©μ§€κΉŒμ§€ 거리가 μ–Όλ§ˆ μ•ˆ λ‚¨μ•˜μ„ λ•Œ
                    time += now;
                    now -= now;
                } else{
                    time += b;
                    now -= b;
                }
                if(now == 0) break;
            } else{ // 정지
                time += a;
            }
        }
    }
    cout << time;
   return 0;
}