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

문제 4122 · 바이트 IV

헬스장 이용 기록 결산

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

문제

헬스장 데이터 담당자는 하루 동안 수집된 이용 기록으로 대표 이용 회원 한 명을 선정하려 한다. 출입 장치가 내보낸 파일은 CSV 형식이며, 각 행에는 회원 식별자, 이용 시간, 기록 상태가 순서대로 들어 있다. 같은 회원의 기록이 여러 행에 나타날 수 있고, 행들은 회원이나 이용 시간 순서로 정렬되어 있지 않다. 담당자는 입력에 등장한 모든 행을 살펴보고 회원별 집계표를 만들어야 한다. 기록 상태가 V이면 확인이 끝난 유효 기록이고, X이면 취소된 기록이다. 유효 기록의 이용 시간만 해당 회원의 총 이용 시간에 더한다. 유효 기록 한 행마다 해당 회원의 유효 기록 수도 1 증가시킨다. 취소된 기록은 이용 시간과 기록 수에 모두 반영하지 않는다. 내용이 완전히 같은 행이 여러 번 나와도 서로 다른 기록으로 취급하며, 중복 제거는 하지 않는다. 취소된 기록만 가진 회원은 선정 대상에 포함하지 않는다. 대표 이용 회원은 총 이용 시간이 가장 큰 회원이다. 총 이용 시간이 같으면 유효 기록 수가 더 많은 회원을 선택한다. 두 값이 모두 같으면 회원 식별자가 사전순으로 가장 앞선 회원을 선택한다. 식별자는 대문자 영문자로만 이루어지며, 사전순 비교에서는 앞에서부터 처음 다른 문자의 알파벳 순서를 따른다. 한 식별자가 다른 식별자의 접두사이면 더 짧은 식별자가 앞선다. 파일의 첫 CSV 행은 열 이름을 나타내는 고정된 머리글이며 이용 기록이 아니다. 각 필드 사이에는 쉼표 하나만 있고 공백이나 따옴표는 없다. 모든 이용 시간은 분 단위의 양의 정수이다. 선정된 회원의 식별자, 총 이용 시간, 유효 기록 수를 출력한다. 유효 기록이 파일 전체에 하나도 없으면 선정할 회원이 없으므로 NONE을 출력한다.

입력

첫째 줄에 기록 수 N이 주어진다. N은 1 이상 20,000 이하의 정수이다.
둘째 줄에 member_id,minutes,status가 정확히 주어진다.
다음 N개 줄에는 회원 식별자, 이용 시간, 상태가 쉼표로 구분되어 주어진다. 회원 식별자는 길이 1 이상 4 이하의 대문자 영문자 문자열이다. 이용 시간은 1 이상 180 이하의 정수이고 상태는 V 또는 X이다. 필드 안에는 공백, 쉼표, 따옴표가 없다.

출력

유효 기록을 가진 회원이 있으면 선정된 회원의 식별자, 총 이용 시간, 유효 기록 수를 공백으로 구분하여 한 줄에 출력한다. 유효 기록이 하나도 없으면 NONE을 한 줄에 출력한다.

예제 입력 1

6
member_id,minutes,status
A,60,V
B,25,V
B,35,V
C,180,X
A,100,X
D,20,V

예제 출력 1

B 60 2

예제 입력 2

3
member_id,minutes,status
AB,30,V
A,30,V
A,180,X

예제 출력 2

A 30 1

예제 입력 3

2
member_id,minutes,status
A,10,X
B,180,X

예제 출력 3

NONE
힌트 펼치기
  • 유효 기록만 회원 식별자를 키로 하는 집계표에 반영한다.
  • 총 이용 시간, 기록 수, 식별자 순서로 선정 조건을 비교한다.

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