문제 3540 · 비트 V
마지막 예약이 끝나는 시각
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 병원은 한 진료실에서 하루의 예약 환자를 차례대로 진료한다. 예약 담당자는 첫 진료를 시작하는 시각과 예약 인원으로 마지막 진료가 끝나는 시각을 계산하려 한다. 이 문제에서는 모든 환자의 진료 시간이 같고, 환자가 바뀔 때마다 진료실을 정리하는 시간도 같다고 가정한다. 첫 번째 환자의 진료는 기준일의 H시 M분에 시작한다. 예약 환자는 모두 N명이며, 한 환자의 진료에는 정확히 C분이 걸린다. 한 환자의 진료가 끝나고 다음 환자의 진료를 시작하기 전에는 정확히 R분 동안 진료실을 정리한다. 정리가 끝나면 다음 환자의 진료를 곧바로 시작한다. 첫 번째 환자의 진료 전에는 정리 시간이 필요하지 않으며, 마지막 환자의 진료가 끝난 뒤의 정리 시간은 계산에 포함하지 않는다. 모든 환자는 예약 순서대로 빠짐없이 진료를 받는다. 지각이나 취소는 없고, 진료와 정리 외의 대기 시간이나 휴식 시간도 없다. 따라서 환자가 한 명뿐이면 그 환자의 진료 시간만 지나면 모든 예약이 끝난다. 정리 시간이 0분이면 앞 환자의 진료가 끝나는 순간 다음 환자의 진료가 시작된다. 시각은 24시간제로 나타내며, 하루는 정확히 24시간이고 한 시간은 정확히 60분이다. 진료 도중 자정이 지나더라도 같은 규칙으로 진료를 계속한다. 기준일을 0일째로 정하고, 자정을 지날 때마다 날짜 번호가 1씩 증가한다. 예를 들어 기준일 다음 날의 오전 2시 5분은 1일째 2시 5분이다. 마지막 진료가 정확히 자정에 끝나면 새로 시작한 날의 0시 0분으로 나타낸다. 첫 진료의 시작 시각과 예약 정보를 입력받아, 마지막 환자의 진료가 끝나는 날짜 번호와 시각을 구하는 프로그램을 작성한다. 모든 시간은 정수 분 단위이므로 초 단위 계산이나 반올림은 필요하지 않다.
입력
첫째 줄에 정수 H, M, N, C, R이 공백으로 구분되어 주어진다. 0 ≤ H ≤ 23, 0 ≤ M ≤ 59, 1 ≤ N ≤ 1,000, 1 ≤ C ≤ 60, 0 ≤ R ≤ 30이다.
출력
마지막 진료가 끝나는 날짜 번호 D, 시 A, 분 B를 공백으로 구분하여 한 줄에 출력한다. D는 기준일로부터 지난 날짜 수이며, 0 ≤ A ≤ 23, 0 ≤ B ≤ 59이다. 각 값은 앞에 불필요한 0을 붙이지 않은 정수로 출력한다. 주어진 조건에서 종료 시각은 항상 하나로 정해진다.
예제 입력 1
9 20 3 25 5
예제 출력 1
0 10 45
예제 입력 2
23 40 2 10 0
예제 출력 2
1 0 0
예제 입력 3
22 50 40 40 10
예제 출력 3
2 8 0
힌트 펼치기
- 진료 시간은 N번 더하지만, 환자 사이의 정리 시간은 N−1번 더한다.
- 기준일 0시 0분부터 지난 전체 시간을 분으로 계산한 뒤 날짜, 시, 분으로 나눈다.
관련 서재 장
알고리즘 분류
사칙연산풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |