문제 4431 · 바이트 I
지원 서비스 오류 요약
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
사내 IT 지원팀은 여러 지원 서비스에서 수집한 하루치 로그로 오류 요약표를 만들려고 한다. 각 로그에는 발생 시각, 서비스 이름, 처리 결과가 기록되어 있다. 처리 결과가 OK이면 정상 기록이고, ERR이면 오류 기록이다. 서비스 이름은 영문 소문자로만 이루어지며, 이름이 같으면 같은 서비스다. 수집 장치가 여러 대이므로 입력된 로그의 순서는 발생 시각의 순서와 다를 수 있다. 또한 시각과 서비스 이름과 처리 결과가 모두 같은 로그가 여러 번 나타날 수 있다. 이러한 로그도 각각 별개의 처리 기록이므로, 중복을 제거하지 않고 모두 센다. 모든 로그는 같은 날 발생했으며 날짜가 바뀌는 경우는 고려하지 않는다. 요약표에는 오류 기록이 한 번 이상 있는 서비스만 포함한다. 각 서비스에 대해 오류 기록의 개수와 마지막 오류 발생 시각을 구한다. 마지막 오류 발생 시각은 해당 서비스의 ERR 기록에 적힌 시각 중 가장 늦은 시각이다. 정상 기록이 더 늦게 발생했더라도 마지막 오류 발생 시각에는 영향을 주지 않는다. 요약표의 행은 오류 기록의 개수가 많은 서비스부터 나열한다. 오류 개수가 같으면 마지막 오류 발생 시각이 늦은 서비스를 먼저 나열한다. 두 조건이 모두 같으면 서비스 이름의 사전순으로 나열한다. 사전순은 영문 소문자의 일반적인 순서를 따르며, 한 이름이 다른 이름의 접두사이면 짧은 이름이 먼저다. 주어진 로그로 요약표를 작성한다. 오류 기록이 전혀 없다면 요약표에 들어갈 서비스 수만 0으로 출력한다. 시각은 입력과 출력 모두 두 자리 시, 두 자리 분, 두 자리 초를 콜론으로 연결한 형식을 사용한다.
입력
첫째 줄에 로그 수 N이 주어진다. N은 1 이상 20,000 이하인 정수다. 다음 N개 줄에 발생 시각 T, 서비스 이름 S, 처리 결과 R이 공백으로 구분되어 주어진다. T는 HH:MM:SS 형식이며 HH는 00~23, MM과 SS는 00~59다. S는 길이 1 이상 4 이하인 영문 소문자 문자열이다. R은 OK 또는 ERR이다. 로그는 시각순으로 주어지지 않을 수 있다.
출력
첫째 줄에 오류 기록이 한 번 이상 있는 서비스 수 K를 출력한다. 다음 K개 줄에 정해진 순서대로 서비스 이름, 오류 기록 수, 마지막 오류 발생 시각을 공백으로 구분하여 출력한다. K가 0이면 추가 줄을 출력하지 않는다.
예제 입력 1
7 09:10:00 net ERR 11:00:00 app ERR 08:00:00 db OK 10:00:00 net ERR 09:30:00 app ERR 12:00:00 net OK 11:00:00 web ERR
예제 출력 1
3 app 2 11:00:00 net 2 10:00:00 web 1 11:00:00
예제 입력 2
3 23:59:59 help OK 00:00:00 a OK 12:00:00 help OK
예제 출력 2
0
예제 입력 3
4 01:02:03 b ERR 01:02:03 a ERR 01:02:03 b ERR 01:02:03 a ERR
예제 출력 3
2 a 2 01:02:03 b 2 01:02:03
힌트 펼치기
- 시각의 각 부분이 두 자리로 고정되어 있으므로 시각 문자열의 사전순과 시간순이 같다.
- 서비스별 오류 개수와 가장 늦은 오류 시각을 저장한 뒤 정렬한다.
알고리즘 분류
로그 파싱해시정렬풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |