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

문제 3378 · 비트 II

완료된 충전 로그 정산

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

문제

전기차 충전소의 운영 서버는 충전 요청 하나가 종료될 때마다 로그 한 줄을 남긴다. 백엔드 담당자는 하루 동안 모인 로그를 읽어 정상 완료된 요청의 수와 그 요청들이 사용한 충전 시간을 집계하려 한다. 현장 화면에 표시된 시간은 여러 종료 상태를 함께 포함하므로, 정산 보고서에는 로그의 상태를 확인한 결과를 사용해야 한다. 각 로그는 충전기 번호, 종료 상태, 기록 시간이라는 세 항목으로 이루어진다. 충전기 번호는 어느 충전기에서 요청을 처리했는지 나타내는 정수다. 종료 상태는 DONE, STOP, ERROR 중 하나다. DONE은 요청이 정상 완료되었음을 뜻하고, STOP은 이용자가 완료 전에 중단했음을 뜻하며, ERROR는 장치 오류로 종료되었음을 뜻한다. 기록 시간은 해당 요청에 대해 장치가 기록한 초 단위의 정수다. 이번 보고서에서는 종료 상태가 DONE인 로그만 집계한다. DONE 로그 한 줄을 읽을 때마다 완료 요청 수를 1 늘리고, 그 줄의 기록 시간을 완료 시간 합계에 더한다. STOP이나 ERROR인 로그의 기록 시간은 값이 양수이더라도 합계에 더하지 않는다. 기록 시간이 0인 DONE 로그도 정상 완료된 요청 한 건으로 세며, 이때 시간 합계는 늘어나지 않는다. 입력에 주어지는 각 줄은 서로 다른 요청의 로그다. 같은 충전기 번호가 여러 줄에 나타날 수 있으며, 세 항목의 값이 모두 같은 줄이 반복될 수도 있다. 이 경우에도 각 줄을 별개의 요청으로 처리한다. 충전기별로 하나만 남기거나 내용이 같은 로그를 제거해서는 안 된다. 또한 입력은 시간순으로 정렬되어 있다는 보장이 없지만, 이번 집계에는 로그의 순서가 영향을 주지 않는다. 전체 충전기에 대한 하나의 보고서를 작성하므로 충전기마다 결과를 따로 출력하지 않는다. 정상 완료된 로그가 하나도 없으면 완료 요청 수와 완료 시간 합계를 모두 0으로 정한다. 가장 큰 값이나 대표 충전기를 선택하는 작업은 없으므로 동점 처리도 필요하지 않다. 주어진 모든 로그를 확인하여 보고서에 들어갈 두 정수를 구한다.

입력

첫째 줄에 로그의 수를 나타내는 정수 N이 주어진다. 1 ≤ N ≤ 1,000이다.
다음 N개의 줄에 충전기 번호 C, 종료 상태 R, 기록 시간 T가 공백으로 구분되어 주어진다. C와 T는 정수이며 1 ≤ C ≤ 20, 0 ≤ T ≤ 600이다. R은 DONE, STOP, ERROR 중 하나이다.
각 줄은 별개의 요청을 나타낸다.

출력

종료 상태가 DONE인 로그의 수와 그 로그들의 기록 시간 합계를 초 단위의 정수로 공백 하나로 구분하여 출력한다. DONE인 로그가 없으면 0 0을 출력한다.

예제 입력 1

6
2 DONE 120
2 STOP 80
7 DONE 0
2 DONE 120
9 ERROR 31
7 DONE 45

예제 출력 1

4 285

예제 입력 2

3
1 STOP 600
4 ERROR 0
1 ERROR 25

예제 출력 2

0 0

예제 입력 3

2
20 DONE 0
20 DONE 0

예제 출력 3

2 0
힌트 펼치기
  • 로그 한 줄을 세 항목으로 나눈 뒤 종료 상태를 확인한다.
  • 완료 요청 수와 완료 시간 합계를 별도의 변수에 저장한다.

출처: 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 / 테스트측정하지 않음(브라우저 채점)