문제 4519 · 바이트 II
주차 구역 표기의 통일
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 주차장의 안내 단말기는 주차 위치를 구역 이름과 자리 번호로 기록한다. 구역 이름은 영문자이고 자리 번호는 십진수 숫자이다. 단말기마다 영문자의 대소문자와 자리 번호 앞에 붙이는 0의 개수가 달라서, 같은 위치가 서로 다른 문자열로 저장되어 있다. 관리자는 이 기록을 하나의 표기 방식으로 통일한 목록을 만들려고 한다. 입력 기록은 구역 이름, 하이픈 한 개, 자리 번호를 차례로 이어 붙인 문자열이다. 구역 이름은 영문 대문자 또는 소문자 1개 이상 3개 이하로 이루어진다. 자리 번호 부분은 숫자 1개 이상 6개 이하로 이루어지며, 맨 앞에 0이 올 수 있다. 하이픈 이외의 구분 문자와 공백은 기록 안에 나타나지 않는다. 모든 입력 기록은 이 형식을 만족한다. 표기를 통일할 때에는 구역 이름의 모든 소문자를 대문자로 바꾼다. 자리 번호는 십진수 정수로 해석하여 불필요한 앞쪽 0을 모두 없앤다. 숫자가 전부 0이면 자리 번호를 0 한 글자로 적는다. 통일된 위치 표기는 바뀐 구역 이름과 자리 번호 사이에 하이픈 한 개를 넣어 만든다. 예를 들어 cD-0008과 Cd-08은 모두 CD-8을 뜻한다. 같은 통일 표기가 나온 횟수를 모은 뒤, 서로 다른 위치마다 표기와 횟수를 한 줄씩 출력한다. 출력 순서는 먼저 구역 이름의 사전순으로 정한다. 영문 대문자의 순서는 A부터 Z까지이며, 한 이름이 다른 이름의 접두사이면 짧은 이름이 먼저 온다. 구역 이름이 같으면 자리 번호의 정수 값이 작은 위치가 먼저 온다. 따라서 자리 번호 부분을 단순한 문자열 순서로 비교해서는 안 된다. 입력에 나타나지 않은 위치는 출력하지 않으며, 입력 기록이 하나 이상이므로 출력할 위치도 항상 하나 이상이다.
입력
첫째 줄에 기록 수 N이 주어진다. 다음 N개 줄에 위치 기록이 하나씩 주어진다. N은 정수이며 1 ≤ N ≤ 20,000이다. 각 기록의 구역 이름 길이는 1 이상 3 이하, 자리 번호 부분의 길이는 1 이상 6 이하이다. 기록에 사용되는 문자는 영문 대소문자, 숫자, 하이픈뿐이며 하이픈은 구역 이름과 자리 번호 사이에 정확히 한 번 나타난다.
출력
첫째 줄에 서로 다른 통일 표기의 수 K를 출력한다. 다음 K개 줄에 통일 표기와 해당 위치의 기록 횟수를 공백으로 구분하여 정해진 순서대로 출력한다. 자리 번호에는 불필요한 앞쪽 0을 붙이지 않는다.
예제 입력 1
6 a-010 A-2 b-000 A-000002 ab-1 a-10
예제 출력 1
4 A-2 2 A-10 2 AB-1 1 B-0 1
예제 입력 2
3 z-000000 Z-0 z-00
예제 출력 2
1 Z-0 3
힌트 펼치기
- 구역 이름과 정수로 바꾼 자리 번호를 함께 키로 사용한다.
- 정렬 기준은 통일 표기 전체의 문자열 순서와 다르다.
관련 서재 장
알고리즘 분류
문자열정렬해시풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |