문제 4636 · 바이트 I
같은 자전거를 가리키는 표기
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
공유 자전거 관리자는 이용자가 제출한 점검 요청에서 자전거 식별 표기를 모으고 있다. 자전거에 붙은 표찰은 영문자와 숫자로 이루어져 있지만, 이용자들은 표찰의 내용을 옮겨 적을 때 영문자의 대소문자를 다르게 쓰거나 읽기 편하도록 하이픈을 추가하기도 한다. 관리자는 이러한 표기 차이를 없앤 뒤 요청이 가장 많이 들어온 자전거를 찾으려고 한다. 요청에 적힌 문자열을 대표 표기로 바꾸는 규칙은 다음과 같다. 먼저 문자열에 포함된 모든 하이픈 문자 '-'를 삭제한다. 그다음 영문 대문자 'A'부터 'Z'까지를 각각 대응하는 영문 소문자로 바꾼다. 영문 소문자와 숫자는 그대로 둔다. 이 두 작업을 마친 문자열이 해당 요청의 대표 표기이다. 대표 표기가 정확히 같은 요청들은 모두 같은 자전거에 대한 요청으로 취급한다. 반대로 대표 표기가 다르면 서로 다른 자전거에 대한 요청이다. 숫자는 문자열의 일부이므로 맨 앞에 있는 숫자 0도 삭제하지 않는다. 예를 들어 대표 표기 'b04'와 'b4'는 서로 다르다. 문자의 순서를 바꾸거나 연속해서 등장하는 같은 문자를 합치는 작업도 하지 않는다. 각 요청은 독립적으로 한 번씩 집계한다. 같은 이용자가 여러 번 요청했는지 확인하는 정보는 없으며, 입력 문자열이 완전히 같게 반복되어도 등장한 횟수만큼 센다. 입력에 등장하지 않은 자전거는 조사 대상에 포함하지 않는다. 모든 입력 문자열에는 영문자 또는 숫자가 적어도 하나 있으므로 대표 표기가 빈 문자열이 되는 경우는 없다. 가장 많은 요청을 받은 자전거가 여러 대라면 대표 표기가 사전순으로 가장 앞선 자전거를 선택한다. 사전순은 숫자 '0'부터 '9', 영문 소문자 'a'부터 'z'의 순서를 따르며, 한 문자열이 다른 문자열의 접두사라면 짧은 문자열이 앞선다. 선택한 자전거의 대표 표기와 요청 횟수를 구한다.
입력
첫째 줄에 점검 요청 수 N이 주어진다. 다음 N개 줄에 요청에 적힌 문자열이 하나씩 주어진다. N은 정수이며 1 ≤ N ≤ 20,000이다. 각 문자열의 길이는 1 이상 15 이하이며, 영문 대문자, 영문 소문자, 숫자, 하이픈 '-'만 포함한다. 각 문자열에는 영문자 또는 숫자가 적어도 하나 포함된다.
출력
선택한 자전거의 대표 표기와 해당 대표 표기로 집계된 요청 횟수를 한 줄에 공백으로 구분하여 출력한다.
예제 입력 1
6 Ra-07 rA07 Q-2 q2 RA--07 q-03
예제 출력 1
ra07 3
예제 입력 2
4 b4 B-04 b-4 B04
예제 출력 2
b04 2
예제 입력 3
1 --Z--
예제 출력 3
z 1
힌트 펼치기
- 대표 표기를 먼저 만든 뒤, 대표 표기별 등장 횟수를 센다.
관련 서재 장
알고리즘 분류
문자열해시풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |