문제 3509 · 비트 III
우편 자루의 기준선
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
작은 우체국에서는 창구에서 접수한 일반 우편을 하나의 운송 자루에 차례로 담는다. 담당자는 자루를 묶을 시점을 정하기 위해 그날 접수한 우편의 무게를 접수 순서대로 기록했다. 기록에는 우편마다 포장까지 마친 무게가 들어 있으며, 모든 무게는 그램 단위의 양의 정수다. 우편을 다른 순서로 담거나 하나의 우편을 나누어 담는 일은 없다. 작업을 시작할 때 자루는 비어 있다. 담당자는 첫 번째 우편부터 하나씩 자루에 넣고, 넣을 때마다 지금까지 넣은 우편의 무게 합을 확인한다. 이 합이 정해진 기준 무게 K 이상이 되는 순간, 방금 넣은 우편의 접수 번호를 작업표에 적으려 한다. 접수 번호는 입력에 나타난 순서대로 1번부터 N번까지 붙는다. 자루 자체의 무게는 합에 포함하지 않는다. 기준 무게는 자루에 넣을 수 있는 최대 무게가 아니라 작업표를 작성하는 기준이다. 따라서 어떤 우편을 넣은 결과 합이 K를 넘어도 그 우편을 다시 꺼내지 않는다. 합이 K와 정확히 같아진 경우도 기준에 도달한 것으로 본다. 또한 한 우편의 무게가 K 이상이라면 그 우편을 넣는 순간까지의 합으로 판단한다. 작업표에는 기준에 처음 도달한 접수 번호 하나만 적는다. 그 뒤의 우편으로 합이 더 커지더라도 기록한 번호는 바뀌지 않는다. 입력에 있는 우편을 모두 넣어도 합이 K보다 작다면 작업표에 0을 적는다. 같은 무게의 우편이 여러 개 있어도 각각 별개의 접수 건으로 처리한다. 우편 개수 N, 기준 무게 K, 접수 순서에 따른 무게가 주어질 때 작업표에 적을 수를 구하는 프로그램을 작성한다.
입력
첫째 줄에 정수 N과 K가 공백으로 구분되어 주어진다. 1 ≤ N ≤ 1,000이고 1 ≤ K ≤ 1,000,000이다. 둘째 줄에 각 우편의 무게를 나타내는 정수 W_1, W_2, …, W_N이 접수 순서대로 주어진다. 모든 i에 대해 1 ≤ W_i ≤ 1,000이다.
출력
무게의 누적 합이 처음으로 K 이상이 되는 접수 번호를 정수 하나로 출력한다. 모든 우편의 무게 합이 K보다 작으면 0을 출력한다.
예제 입력 1
6 18 4 3 8 3 2 7
예제 출력 1
4
예제 입력 2
4 25 6 6 6 6
예제 출력 2
0
예제 입력 3
1 9 12
예제 출력 3
1
힌트 펼치기
- 접수 순서대로 무게를 더하면서, 합이 기준 이상이 된 첫 번째 위치를 찾는다.
관련 서재 장
알고리즘 분류
반복누적풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |