왕복 (백준 18311)

코딩생활·2024년 2월 21일
0

백준문제풀이

목록 보기
246/308

안녕하세요. 오늘은 왕복을 할 거예요.

문제

https://www.acmicpc.net/problem/18311

아이디어

차근차근 빼줍시다.
남은 거리에서 현재 거리를 뺐을 때 음수라면, 즉 현재 거리를 다 가지 못한다면 현재 번호를 출력해줍니다.

소스코드

#include <iostream>
#define ll long long
using namespace std;

int main(void)
{
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    ll N, K, i, arr[101010] = { 0 };

    cin >> N >> K;
    for (i = 1; i <= N; i++) cin >> arr[i];
    for (i = 1; i <= N; i++)
    {
        if (K - arr[i] < 0)
        {
            cout << i;
            return 0;
        }
        K -= arr[i];
    }
    for (i = N; i >= 1; i--)
    {
        if (K - arr[i] < 0)
        {
            cout << i;
            return 0;
        }
        K -= arr[i];
    }
}


감사합니다.

0개의 댓글