문제 3482 · 비트 III
복습 약속을 채운 날
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 학원에서는 학생이 꾸준히 복습하도록 일정 기간 동안의 복습 시간을 기록한다. 기록 기간은 N일이며, 첫날부터 차례로 1일, 2일, ..., N일이라고 부른다. 학생은 이 기간에 복습 시간을 모두 합쳐 적어도 T분을 채우기로 약속했다. 담당 강사는 학생이 약속한 시간을 처음 채운 날을 확인하려 한다. 매일의 기록은 그날 실제로 복습한 시간을 분 단위로 나타낸다. 복습을 하지 않은 날의 기록은 0분이다. 하루의 기록은 음수가 아닌 정수이며, 다음 날이 되어도 이전 날까지 쌓인 시간이 사라지지 않는다. 휴일이나 복습하지 않은 날에도 합계를 초기화하지 않는다. 기록에 없는 추가 복습 시간은 합계에 포함하지 않는다. 어떤 날에 약속을 채웠는지는 그날의 복습을 모두 마친 뒤 판단한다. 1일부터 그날까지 기록된 시간을 더한 값이 T 이상이면 그날까지 약속한 시간을 채운 것이다. 합계가 정확히 T가 되는 경우도 포함한다. 하루 중 몇 시에 목표를 넘겼는지는 알 필요가 없으며, 날짜 번호만 사용한다. 첫날 기록만으로 목표를 채웠다면 답은 1이다. 목표를 채운 날이 여러 날이어도 가장 이른 날 하나만 답으로 삼는다. 목표를 채운 뒤에 등장하는 기록은 이미 결정된 날짜를 바꾸지 않는다. 반대로 N일의 복습 시간을 모두 더해도 T에 도달하지 못했다면, 기록 기간 안에는 약속을 채운 날이 없는 것이다. 이 경우에는 날짜 번호 대신 0을 사용한다. N일 동안의 복습 기록과 목표 시간이 주어질 때, 학생이 약속한 복습 시간을 처음 채운 날짜 번호를 구한다. 날짜는 실제 달력 날짜가 아니라 기록의 순서를 뜻한다.
입력
첫째 줄에 정수 N과 T가 공백으로 구분되어 주어진다. 1 ≤ N ≤ 1,000이고 1 ≤ T ≤ 1,000,000이다. 둘째 줄에 각 날짜의 복습 시간인 정수 M_1, M_2, ..., M_N이 순서대로 주어진다. 0 ≤ M_i ≤ 1,000이다.
출력
누적 복습 시간이 처음 T 이상이 되는 날짜 번호를 정수 하나로 출력한다. 그런 날이 없으면 0을 출력한다.
예제 입력 1
6 90 20 0 35 35 10 5
예제 출력 1
4
예제 입력 2
4 101 25 25 25 25
예제 출력 2
0
예제 입력 3
3 12 12 0 7
예제 출력 3
1
힌트 펼치기
- 하루의 시간을 합계에 더한 다음 목표에 도달했는지 확인한다.
관련 서재 장
알고리즘 분류
반복누적풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |