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


[ 알고리즘풀이 ]

1. 우리가 가야하는 길이 K에다가 코스별로 길이를 빼가며 체크하면 된다.

#include<iostream>

using namespace std;

int main(void) {
	ios::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);

	int N, n[100000] = {};
	long long K;
	cin >> N >> K;
	for (int i = 0; i < N; i++)
		cin >> n[i];
	bool check = false;
    //갔다가
	for (int i = 0; i < N; i++) {
		K -= n[i];
		if (K < 0){
			cout << i + 1;
			check = true;
			break;
		}
	}
    //왔다가
	if(!check){
		for (int i = N - 1; i >= 0; i--) {
			K -= n[i];
			if (K < 0){
				cout << i + 1;
				break;
			}
		}
	}
}

 

+ Recent posts