본문으로 이동
코드패스 by Devin.KR

문제 4589 · 바이트 II

지하철 개찰 로그 점검

인증 제출 통계 · 5분마다 갱신 · 정답 비율 = 정답 제출 / 전체 제출
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1000ms / 테스트 (언어별 보정은 아래 표)메모리: 측정하지 않음(브라우저 채점)0000.00%

문제

지하철 개찰 시스템을 운영하는 백엔드 담당자는 하루 동안 수집한 처리 로그에서 점검할 역을 고르려고 한다. 각 로그에는 처리 시각, 역 번호, 처리 결과가 기록되어 있다. 처리 결과 OK는 정상 통과를 뜻하고, FAIL은 개찰 요청을 처리하지 못했음을 뜻한다. 같은 승객의 요청인지 구별할 정보는 없으므로, 내용이 완전히 같은 로그가 여러 줄 있어도 각 줄을 별개의 처리 기록으로 센다. 로그 한 줄은 HH:MM|S|R 형식이다. HH와 MM은 각각 두 자리의 시와 분이며, S는 역 번호, R은 OK 또는 FAIL이다. 세 필드는 세로줄 문자로 구분되고 줄 안에는 공백이 없다. 로그는 여러 수집 장치에서 합쳐졌으므로 시각순이나 역 번호순으로 정렬되어 있지 않을 수 있다. 모든 기록은 같은 날에 발생했으며, 초 단위 정보는 사용하지 않는다. 담당자는 입력으로 주어진 시작 시각부터 종료 시각까지의 기록만 조사한다. 시작 시각과 종료 시각에 발생한 기록도 포함한다. 조사 구간은 자정을 넘지 않으며 시작 시각은 종료 시각보다 늦지 않다. 구간 밖의 기록은 어떤 집계에도 포함하지 않는다. 조사 구간 안에서 FAIL 기록이 한 번 이상 나온 역만 점검 후보가 된다. 점검 후보 중 FAIL 기록 수가 가장 많은 역을 선택한다. FAIL 기록 수가 같으면 역 번호가 더 작은 역을 선택한다. 정상 통과 기록 수나 실패 비율은 선택 기준에 사용하지 않는다. 선택한 역에 대해서는 조사 구간 안의 FAIL 기록 수와 전체 기록 수도 함께 보고해야 한다. 여기서 전체 기록 수는 OK와 FAIL을 모두 합한 값이다. 후보가 하나도 없다면 점검할 역이 없음을 나타내는 정해진 결과를 출력한다.

입력

첫째 줄에 정수 N과 시작 시각 L, 종료 시각 U가 공백으로 구분되어 주어진다. 1 ≤ N ≤ 25,000이다. L과 U는 HH:MM 형식이며 00:00 ≤ L ≤ U ≤ 23:59이다.
다음 N개 줄에 HH:MM|S|R 형식의 로그가 하나씩 주어진다. 시는 00부터 23, 분은 00부터 59이며 항상 두 자리이다. S는 1 이상 99 이하의 정수이고 앞에 불필요한 0이 붙지 않는다. R은 OK 또는 FAIL이다. 모든 로그는 형식에 맞게 주어진다.

출력

점검할 역이 있으면 역 번호, 조사 구간 안의 FAIL 기록 수, 조사 구간 안의 전체 기록 수를 이 순서대로 공백으로 구분하여 한 줄에 출력한다. 점검 후보가 없으면 -1 0 0을 출력한다.

예제 입력 1

7 08:00 09:00
08:10|4|FAIL
07:59|4|FAIL
08:20|2|FAIL
09:00|4|OK
08:30|2|OK
08:50|4|FAIL
09:01|2|FAIL

예제 출력 1

4 2 3

예제 입력 2

5 12:00 12:30
12:00|9|FAIL
12:15|3|FAIL
12:20|9|OK
12:30|3|OK
12:31|3|FAIL

예제 출력 2

3 1 2

예제 입력 3

3 06:00 06:10
05:59|1|FAIL
06:05|2|OK
06:11|2|FAIL

예제 출력 3

-1 0 0
힌트 펼치기
  • 시각을 자정부터 지난 분으로 바꾸면 조사 구간에 속하는지 쉽게 판별할 수 있다.
  • 역별 전체 기록 수와 FAIL 기록 수를 따로 센다.

출처: Devin.KR 자체 제작

알고리즘 분류로그 파싱집계문자열

풀이 작성

연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.

Python 기본 시간 제한 = 문제 시간 제한 × 3 + 2초. 문제별 예외는 아래 표에 반영됩니다. 표준 라이브러리만 지원합니다.

Ctrl+Enter: 연습 채점 · Tab: 들여쓰기 · Esc 후 Tab: 다음 요소로 이동. 언어별 초안은 이 브라우저에 저장됩니다. JavaScript 입력: require('fs').readFileSync(0, 'utf8'), readline 또는 input().

로그인하면 인증 제출을 사용할 수 있습니다.

풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.

    연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.

    이 브라우저의 연습 기록

      언어별 제한

      테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.

      언어엔진(버전)시간 제한메모리
      javascript사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름)1000ms / 테스트측정하지 않음(브라우저 채점)
      pythonPyodide 314.0.7 (CPython 3.14 WASM)5000ms / 테스트측정하지 않음(브라우저 채점)