문제 3885 · 비트 II
은행 창구의 대기 시간 합계
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 은행 지점은 오전 9시에 한 개의 상담 창구를 연다. 창구에는 직원 한 명이 근무하며, 한 번에 고객 한 명의 업무만 처리한다. 운영 담당자는 방문 기록을 이용하여 고객들이 상담 시작 전까지 기다린 시간을 합산하려고 한다. 기록에는 각 고객의 도착 시각과 그 고객의 업무를 처리하는 데 필요한 시간이 분 단위로 저장되어 있다. 모든 고객은 같은 날짜에 도착한다. 고객은 도착한 순서대로 상담을 받는다. 도착 시각이 같은 고객이 여러 명이면 입력에서 먼저 나온 고객을 먼저 처리한다. 고객이 도착했을 때 창구가 비어 있으면 그 시각에 바로 상담을 시작한다. 앞선 고객의 상담이 진행 중이면 그 상담이 끝날 때까지 기다린다. 한 상담이 끝나는 시각에 다음 상담을 바로 시작할 수 있으므로 고객 사이의 별도 준비 시간은 없다. 고객이 이전 상담 종료 시각에 정확히 도착한 경우에도 기다리지 않는다. 각 고객의 대기 시간은 실제 상담 시작 시각에서 도착 시각을 뺀 값이다. 상담을 받는 데 걸리는 시간은 그 고객 자신의 대기 시간에 포함하지 않는다. 다만 그 상담 때문에 뒤에 온 고객의 대기 시간이 늘어날 수 있다. 창구가 비어 있는 동안에는 시간을 소비하는 작업이 없으며, 다음 고객이 도착하면 즉시 상담을 시작한다. 도착 시각은 09시 00분부터 17시 00분까지지만, 이미 도착한 고객의 상담은 모두 끝날 때까지 계속한다. 따라서 상담 종료가 자정을 지나더라도 중단하거나 시각을 초기화하지 않는다. 휴식, 상담 취소, 순서 변경은 없다. 모든 고객의 대기 시간을 분 단위 정수로 더한 값을 구한다. 아무도 기다리지 않았다면 합계는 0이다.
입력
첫째 줄에 고객 수 N이 주어진다. N은 1 이상 1,000 이하의 정수다. 이후 N개의 줄에 도착 시각의 시 H, 분 M, 상담에 필요한 시간 D가 공백으로 구분되어 주어진다. 모든 값은 정수다. 9 ≤ H ≤ 17, 0 ≤ M ≤ 59이며 H가 17이면 M은 0이다. 1 ≤ D ≤ 30이다. 도착 시각은 빠른 순서대로 주어지며 같은 도착 시각이 반복될 수 있다. 같은 시각에서는 입력 순서가 상담 순서다.
출력
모든 고객의 대기 시간을 더한 값을 분 단위 정수 하나로 출력한다.
예제 입력 1
4 9 0 12 9 5 7 9 20 10 9 21 4
예제 출력 1
16
예제 입력 2
3 9 0 10 9 10 5 17 0 30
예제 출력 2
0
예제 입력 3
3 17 0 30 17 0 30 17 0 30
예제 출력 3
90
힌트 펼치기
- 시각을 자정부터 지난 분으로 바꾸고, 앞선 상담이 끝나는 시각을 저장한다.
알고리즘 분류
시간 계산시뮬레이션풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |