문제 4401 · 바이트 I
좌석 코드 표기 통합
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
공연장은 여러 안내 단말에서 수집한 좌석 조회 기록을 하나로 합치려 한다. 단말마다 좌석 코드를 표시하는 방식이 조금씩 달라서, 같은 좌석이 서로 다른 문자열로 기록될 수 있다. 운영 담당자는 표기를 통일한 뒤 실제로 몇 개의 좌석이 조회되었는지와 가장 많이 조회된 좌석이 무엇인지 확인하려 한다. 좌석 코드 하나는 영문자로 이루어진 구역 이름 바로 뒤에 십진수 좌석 번호를 붙인 문자열이다. 구역 이름은 영문 대문자 또는 소문자 1개 이상 3개 이하로 이루어진다. 그 뒤의 번호 부분은 숫자 문자 1개 이상 6개 이하로 이루어지며, 나타내는 정수는 1 이상이다. 영문자와 숫자 사이에 구분 기호는 없고, 코드 안에 공백이나 다른 문자는 들어가지 않는다. 표기를 통일할 때는 구역 이름의 모든 소문자를 대응하는 대문자로 바꾼다. 번호 부분에서는 앞에 붙은 0을 없애고 정수 값으로 해석한다. 예를 들어 c007과 C7은 모두 C 구역의 7번 좌석을 뜻한다. 구역 이름이 다르거나 번호의 정수 값이 다르면 서로 다른 좌석이다. 구역 이름 안에 있는 문자를 재배열하거나 일부를 생략하지는 않는다. 입력의 각 코드는 조회 한 번을 나타낸다. 같은 코드가 반복되어도 모든 조회를 횟수에 포함한다. 가장 많이 조회된 좌석이 여러 개라면 대문자로 통일한 구역 이름이 사전순으로 가장 앞선 좌석을 선택한다. 구역 이름까지 같으면 번호의 정수 값이 가장 작은 좌석을 선택한다. 구역 이름의 사전순은 A부터 Z까지의 문자 순서를 따르며, 한 이름이 다른 이름의 접두사이면 짧은 이름이 먼저다. 표기를 통일한 서로 다른 좌석 수와 위 규칙으로 선택한 좌석 및 조회 횟수를 구한다.
입력
첫째 줄에 조회 기록의 수를 나타내는 정수 N이 주어진다. 1 ≤ N ≤ 100,000이다. 다음 N개 줄에 좌석 코드가 하나씩 주어진다. 각 코드는 영문 대소문자 1~3개 뒤에 숫자 문자 1~6개가 이어지는 형식이다. 번호의 정수 값은 1 이상 999,999 이하이다. 모든 좌석 코드 길이의 합은 300,000 이하이다.
출력
첫째 줄에 표기를 통일한 서로 다른 좌석의 수를 출력한다. 둘째 줄에 선택한 좌석의 구역 이름, 좌석 번호, 조회 횟수를 공백으로 구분하여 출력한다. 구역 이름은 대문자로, 좌석 번호는 앞에 0이 없는 십진수로 출력한다. 조회 기록이 하나 이상이므로 선택할 좌석은 항상 존재한다.
예제 입력 1
7 b007 B7 a02 A2 a002 AA1 b008
예제 출력 1
4 A 2 3
예제 입력 2
6 z010 Z10 aA003 AA3 aa0002 Aa2
예제 출력 2
3 AA 2 2
예제 입력 3
1 q000001
예제 출력 3
1 Q 1 1
힌트 펼치기
- 영문자 부분과 숫자 부분의 경계를 찾은 뒤 각 부분을 따로 통일한다.
- 통일한 구역 이름과 번호를 하나의 키로 사용하여 조회 횟수를 센다.
관련 서재 장
알고리즘 분류
문자열해시구현풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |