문제 4265 · 바이트 III
우체국의 대표 분류 코드
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 우체국은 도착한 우편물을 분류 코드에 따라 작업대에 모은다. 분류 코드는 발송인이 봉투에 적지만, 같은 코드를 적을 때에도 대문자와 소문자를 다르게 쓰거나 읽기 편하도록 붙임표를 넣는 경우가 있다. 우체국은 이런 표기 차이 때문에 같은 작업대로 보낼 우편물이 나뉘지 않도록 코드를 통일하는 규칙을 정했다. 입력된 코드에서 붙임표 '-'를 모두 지우고, 남아 있는 영문 대문자를 대응하는 영문 소문자로 바꾼 결과를 표준 코드라고 한다. 숫자는 그대로 두며, 문자와 숫자의 순서도 바꾸지 않는다. 붙임표는 코드의 처음이나 끝에 있을 수도 있고 여러 개가 연속해서 나올 수도 있다. 붙임표를 지우는 것 외에 문자를 추가하거나 제거하는 작업은 하지 않는다. 특히 숫자 0이 코드의 앞부분에 남아 있더라도 지우지 않는다. 예를 들어 'B-04-x'와 'b04X'의 표준 코드는 모두 'b04x'이므로 같은 작업대로 보낸다. 반면 'b4x'는 다른 표준 코드다. 표준 코드가 같으면 원래 코드의 길이나 붙임표의 위치가 달라도 같은 종류의 우편물로 센다. 한 줄에 적힌 코드는 우편물 하나를 나타내며, 완전히 같은 입력 코드가 여러 번 등장해도 각 줄을 각각 한 개의 우편물로 센다. 우체국은 가장 많은 우편물이 모이는 작업대를 오늘의 대표 작업대로 정하려고 한다. 모든 입력 코드를 표준 코드로 바꾼 뒤, 등장 횟수가 가장 많은 표준 코드와 그 횟수를 출력한다. 최다 등장 횟수를 가진 표준 코드가 여러 개라면 사전순으로 가장 앞선 것을 고른다. 사전순 비교에서는 숫자 '0'부터 '9'까지가 먼저 오고, 그 뒤에 영문 소문자 'a'부터 'z'까지가 온다. 한 코드가 다른 코드의 접두사라면 더 짧은 코드가 먼저 온다. 입력에는 우편물이 적어도 하나 있으므로 대표 작업대는 항상 존재한다.
입력
첫째 줄에 우편물 수 N이 주어진다. 다음 N개 줄에는 분류 코드가 하나씩 주어진다. N은 1 이상 100,000 이하의 정수다. 각 코드의 길이는 1 이상 30 이하이며, 모든 코드 길이의 합은 250,000 이하이다. 코드는 영문 대문자, 영문 소문자, 숫자, 붙임표 '-'로만 이루어진다. 각 코드에는 영문자 또는 숫자가 적어도 하나 포함된다.
출력
대표 작업대의 표준 코드와 그 등장 횟수를 공백으로 구분하여 한 줄에 출력한다.
예제 입력 1
6 B-04-x b04X b4x A-2 a2 --a2-
예제 출력 1
a2 3
예제 입력 2
4 Q-7 q7 0-Q 0q
예제 출력 2
0q 2
예제 입력 3
1 ---Z-00---
예제 출력 3
z00 1
힌트 펼치기
- 붙임표 제거와 소문자 변환을 먼저 수행한다.
- 최다 등장 횟수가 같을 때의 사전순 조건도 처리해야 한다.
관련 서재 장
알고리즘 분류
문자열해시정렬풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |