문제 4201 · 바이트 II
마라톤 기록표의 추가 시간
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 마라톤 대회는 결승선을 통과한 참가자들의 기록을 정리하고 있다. 운영진은 결승선 통과 기록과 진행 중에 받은 추가 시간 표식을 함께 읽어 공식 기록을 계산한다. 이 문제에서는 결승선을 통과한 참가자만 기록표에 포함하며, 기록표의 위에서부터 참가자 번호를 1, 2, 3, …으로 부여한다. 각 참가자의 통과 기록은 MM:SS 형식의 문자열이다. MM과 SS는 각각 정확히 두 자리의 십진수이며, 앞자리가 0이어도 생략하지 않는다. MM은 분, SS는 초를 뜻하고 두 값 모두 00 이상 59 이하이다. 따라서 통과 기록을 초로 바꾼 값은 60×MM+SS이다. 기록이 00:00인 경우도 허용한다. 추가 시간 표식은 하이픈 하나인 - 또는 대문자 P가 1개 이상 5개 이하 연속한 문자열이다. 하이픈은 추가 시간이 없다는 뜻이다. P 하나는 20초의 추가 시간을 뜻하며, 여러 개이면 그 개수만큼 추가한다. 예를 들어 PP는 40초를 추가한다. 하이픈과 P가 한 표식에 함께 나타나는 경우는 없다. 공식 기록은 통과 기록을 초로 바꾼 값에 추가 시간을 더한 정수이다. 추가 시간을 더한 결과가 59분 59초보다 커져도 그대로 사용하며, 시간을 다시 일정 범위 안으로 줄이지 않는다. 참가자를 비교할 때에는 통과 기록이나 표식의 사전순이 아니라 계산한 공식 기록을 사용한다. 공식 기록이 가장 작은 참가자를 우승자로 정한다. 공식 기록이 같은 참가자가 여러 명이면 참가자 번호가 가장 작은 사람이 우승한다. 즉, 기록표에서 더 먼저 등장한 사람을 선택한다. 모든 참가자는 유효한 통과 기록과 표식을 가지며, 참가자는 적어도 한 명 있으므로 우승자는 항상 정해진다. 우승자의 참가자 번호와 공식 기록을 초 단위로 구한다.
입력
첫째 줄에 참가자 수 N이 정수로 주어진다. 1 ≤ N ≤ 30,000이다. 다음 N개 줄에 참가자의 통과 기록 T와 추가 시간 표식 P가 공백으로 구분되어 주어진다. i번째 줄의 참가자 번호는 i이다. T는 MM:SS 형식이고 00 ≤ MM, SS ≤ 59이다. 표식은 - 또는 P가 1개 이상 5개 이하 연속한 문자열이다.
출력
우승자의 참가자 번호와 공식 기록을 초 단위의 정수로 공백으로 구분하여 한 줄에 출력한다. 공식 기록이 같으면 참가자 번호가 가장 작은 사람을 선택한다.
예제 입력 1
3 31:10 P 30:55 PP 31:20 -
예제 출력 1
3 1880
예제 입력 2
3 00:40 - 00:00 PP 00:20 P
예제 출력 2
1 40
예제 입력 3
1 59:59 PPPPP
예제 출력 3
1 3699
힌트 펼치기
- 콜론 앞뒤의 두 자리 수를 읽고, 추가 시간 표식의 개수를 초로 바꾸어 더한다.
관련 서재 장
알고리즘 분류
문자열파싱구현풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |