본문으로 이동
코드패스 by Devin.KR

문제 4254 · 바이트 IV

주차장 임시 표식 정리

인증 제출 통계 · 5분마다 갱신 · 정답 비율 = 정답 제출 / 전체 제출
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1000ms / 테스트 (언어별 보정은 아래 표)메모리: 측정하지 않음(브라우저 채점)0000.00%

문제

주차장은 차량을 구분하기 위해 앞 유리에 임시 표식을 붙인다. 이 표식은 실제 차량 번호와 관계없는 네 글자의 관리용 코드다. 출입구 판독기는 표식 하나를 읽을 때마다 문자열 하나를 기록한다. 같은 차량이 여러 번 출입하면 같은 표식에 대한 기록도 여러 개 생긴다. 관리자는 하루 동안의 기록을 정리하여 서로 다른 표식 수와 가장 자주 읽힌 표식을 확인하려고 한다. 판독기가 저장한 문자열에는 글자를 구분하기 위한 하이픈이 들어갈 수 있다. 하이픈은 첫 글자 앞이나 마지막 글자 뒤에는 나타나지 않으며, 서로 이웃한 두 글자 사이에 최대 하나씩 나타난다. 하이픈을 모두 지우면 영문 대문자 또는 숫자로 이루어진 정확히 네 글자가 남는다. 하이픈의 유무와 위치는 표식을 구분하는 기준이 아니다. 또한 이 주차장의 표식에서는 영문 대문자 O와 숫자 0을 구분하지 않으며, 영문 대문자 I와 숫자 1도 구분하지 않는다. 따라서 기록을 정리할 때는 모든 하이픈을 제거한 뒤 O를 0으로, I를 1로 바꾼다. 나머지 영문 대문자와 숫자는 바꾸지 않고, 글자의 순서도 그대로 유지한다. 이 과정을 거친 네 글자를 정리 코드라고 부른다. 앞부분의 0도 코드의 일부이므로 없애지 않는다. 두 기록의 정리 코드가 같으면 같은 표식에 대한 기록으로 센다. 각 기록은 정확히 한 번 집계하며, 같은 표식의 연속된 기록도 모두 횟수에 포함한다. 가장 많이 기록된 정리 코드가 여러 개이면 사전순으로 가장 앞서는 것을 고른다. 여기서 글자 순서는 숫자 0부터 9까지가 먼저이고, 그다음 영문 대문자 A부터 Z까지다. 모든 정리 코드는 길이가 같으므로 왼쪽부터 처음으로 다른 글자를 비교하면 된다. 서로 다른 정리 코드의 수와 가장 자주 기록된 정리 코드 및 그 횟수를 구한다.

입력

첫째 줄에 판독 기록 수 N이 주어진다. 1≤N≤40,000이다.
다음 N개 줄에는 판독 문자열이 하나씩 주어진다. 각 문자열은 영문 대문자, 숫자, 하이픈으로만 이루어진다. 하이픈을 제거하면 정확히 네 글자가 남으며, 하이픈은 이웃한 두 글자 사이에 최대 하나씩만 들어간다. 따라서 문자열 길이는 4 이상 7 이하다. 빈 기록은 없다.

출력

첫째 줄에 서로 다른 정리 코드의 수를 출력한다. 둘째 줄에 가장 많이 기록된 정리 코드와 기록 횟수를 공백으로 구분하여 출력한다. 최다 횟수가 같으면 문제에서 정한 사전순으로 가장 앞서는 코드를 출력한다. 기록이 하나 이상이므로 출력할 코드가 없는 경우는 없다.

예제 입력 1

6
O1-2I
0-12-1
AB-12
AB1-2
OO-OO
00-00

예제 출력 1

3
0000 2

예제 입력 2

3
Z-9-I-O
Z910
A000

예제 출력 2

2
Z910 2

예제 입력 3

1
I-O-I-O

예제 출력 3

1
1010 1
힌트 펼치기
  • 하이픈 제거와 글자 치환을 마친 문자열을 집계의 기준으로 사용한다.
  • 최대 횟수가 같을 때는 코드 문자열을 직접 비교할 수 있다.

관련 서재 장

관련 장

출처: Devin.KR 자체 제작

알고리즘 분류문자열해시구현

풀이 작성

연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.

Python 기본 시간 제한 = 문제 시간 제한 × 3 + 2초. 문제별 예외는 아래 표에 반영됩니다. 표준 라이브러리만 지원합니다.

Ctrl+Enter: 연습 채점 · Tab: 들여쓰기 · Esc 후 Tab: 다음 요소로 이동. 언어별 초안은 이 브라우저에 저장됩니다. JavaScript 입력: require('fs').readFileSync(0, 'utf8'), readline 또는 input().

로그인하면 인증 제출을 사용할 수 있습니다.

풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.

    연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.

    이 브라우저의 연습 기록

      언어별 제한

      테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.

      언어엔진(버전)시간 제한메모리
      javascript사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름)1000ms / 테스트측정하지 않음(브라우저 채점)
      pythonPyodide 314.0.7 (CPython 3.14 WASM)5000ms / 테스트측정하지 않음(브라우저 채점)