문제 3522 · 비트 IV
쇼핑몰 배지 달성일
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 온라인 쇼핑몰에서는 정해진 기간 동안의 구매 실적을 모아 이용자에게 배지를 지급한다. 이번 배지의 목표 금액은 T원이다. 기간이 시작되기 전의 구매 실적은 0원이며, 첫날부터 날짜 순서대로 매일의 구매 인정 금액을 더한다. 어느 날까지의 누적 구매 인정 금액이 처음으로 T원 이상이 되면, 그날을 배지 달성일로 기록한다. 구매 인정 금액은 그날 완료된 주문에서 배지 실적으로 인정되는 금액을 모두 합한 값이다. 할인이나 배송비에 관한 처리는 이미 끝났으므로, 프로그램에서는 입력된 금액을 그대로 더하면 된다. 같은 날 주문이 여러 번 있었더라도 입력에는 그날의 합계 하나만 주어진다. 모든 금액은 원 단위의 정수이며 음수인 금액은 없다. 주문이 없거나 인정되는 금액이 없는 날에는 0원이 기록된다. 배지는 목표 금액과 정확히 같아진 날에도 달성한 것으로 본다. 목표 금액을 한 번에 넘어선 경우에도 넘어선 바로 그날이 달성일이다. 배지를 달성한 뒤에 더 많은 구매가 이루어져도 이미 정해진 달성일은 바뀌지 않는다. 하루 안에서 어느 주문으로 목표를 채웠는지는 구분하지 않으며, 날짜만 확인한다. 날짜 번호는 첫날이 1이고, 이후 하루가 지날 때마다 1씩 증가한다. 운영 담당자에게는 연속된 N일의 구매 인정 금액이 주어진다. 이 기록에서 배지 달성일을 찾아 출력한다. 여러 날의 누적 금액이 목표 금액 이상이라면 그중 가장 이른 날짜 번호를 출력해야 한다. N일의 금액을 모두 더해도 목표 금액에 도달하지 못했다면 -1을 출력한다. 기록 이후에 이루어질 구매는 알 수 없으므로 계산에 포함하지 않는다. 이번 문제에서는 취소나 환불에 따른 실적 감소도 발생하지 않는다.
입력
첫째 줄에 정수 N과 T가 공백으로 구분되어 주어진다. 둘째 줄에 첫날부터 N일째까지의 구매 인정 금액 A₁, A₂, …, Aₙ이 공백으로 구분되어 주어진다. 1 ≤ N ≤ 1,000 1 ≤ T ≤ 10,000,000 0 ≤ Aᵢ ≤ 10,000 모든 입력 값은 정수다.
출력
누적 구매 인정 금액이 처음으로 T원 이상이 되는 날짜 번호를 출력한다. N일 동안 목표를 달성하지 못하면 -1을 출력한다.
예제 입력 1
5 12000 3000 0 4500 4500 2000
예제 출력 1
4
예제 입력 2
4 9000 1000 2000 0 3000
예제 출력 2
-1
예제 입력 3
3 5000 6000 0 1000
예제 출력 3
1
힌트 펼치기
- 첫날부터 금액을 하나씩 더하면서, 누적 금액이 처음으로 목표 이상이 되는 날을 확인한다.
관련 서재 장
알고리즘 분류
반복누적풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |