문제 5268 · 킬로 I
회의실 정리 시간 계산
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
사내 회의실 예약 시스템의 기록을 분석하려 한다. 예약은 N건이며 각 예약은 시작 일시와 종료 일시로 주어진다. 일시는 YYYY-MM-DD HH:MM 형식이고 24시간제이며, 윤년 규칙(4로 나누어떨어지면 윤년, 100으로 나누어떨어지면 평년, 400으로 나누어떨어지면 다시 윤년)을 따른다. 종료 일시는 시작 일시보다 항상 뒤이며 날짜가 바뀌어도 된다. 회의가 끝난 회의실은 다음 회의를 위해 G분 동안 정리해야 하므로, 종료 일시로부터 G분이 지난 시각에야 다른 예약에 쓸 수 있다. 정리가 끝나는 시각과 같은 시각에 시작하는 예약은 그 회의실을 쓸 수 있다. 모든 예약을 겹침 없이 소화하기 위해 필요한 회의실의 최소 개수를 구하라. 예약 하나는 시작 일시부터 종료 일시에 정리 시간 G분을 더한 시각까지 방 하나를 점유한다고 본다.
입력
첫 줄에 N과 G가 공백으로 구분되어 주어진다. 이어지는 N개의 줄에 각각 예약 하나가 시작 날짜, 시작 시각, 종료 날짜, 종료 시각 순서로 공백으로 구분되어 주어진다. 1 ≤ N ≤ 10000, 0 ≤ G ≤ 1440이다. 모든 일시는 2000-01-01 00:00 이상 2100-12-31 23:59 이하이다.
출력
필요한 회의실의 최소 개수를 정수 하나로 출력한다.
예제 입력 1
3 10 2024-02-28 23:00 2024-02-29 01:00 2024-02-29 01:10 2024-02-29 02:00 2024-02-29 01:05 2024-02-29 03:00
예제 출력 1
2
예제 입력 2
2 0 2023-12-31 23:30 2024-01-01 00:00 2024-01-01 00:00 2024-01-01 00:30
예제 출력 2
1
힌트 펼치기
- 일시를 기준 시점부터의 분 단위 정수로 바꾸면 비교가 쉬워진다. 날짜는 윤년을 고려해 일 수로 환산한다.
- 점유 구간은 시작 이상, 끝 미만으로 보고, 같은 시각이면 끝나는 사건을 먼저 처리한 뒤 시작 사건을 처리한다.
알고리즘 분류
날짜·시간구현정렬스위핑풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |