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

문제 3673 · 바이트 V

캠핑장 별칭 모으기

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

문제

캠핑장 안내소는 방문객이 신청서에 적은 구역 별칭을 모으고 있다. 같은 구역을 가리키더라도 어떤 방문객은 대문자를 사용하고, 어떤 방문객은 글자 사이에 붙임표를 넣는다. 안내소는 이러한 표기 차이를 정리한 뒤 가장 많이 등장한 별칭을 다음 안내판에 사용하려 한다. 신청서에 적힌 별칭은 영문 대문자, 영문 소문자, 붙임표인 '-'로만 이루어진 문자열이다. 별칭을 정리할 때에는 모든 붙임표를 지우고, 영문 대문자를 대응하는 영문 소문자로 바꾼다. 나머지 글자의 순서는 바꾸지 않는다. 이렇게 얻은 문자열을 대표 표기라고 한다. 예를 들어 'P-iNe'와 'pi--ne'의 대표 표기는 모두 'pine'이다. 대표 표기가 같은 신청서들은 하나의 별칭을 사용한 것으로 묶는다. 각 별칭의 등장 횟수는 그 대표 표기를 갖는 신청서의 개수다. 원래 문자열이 완전히 같은 신청서가 여러 장 있더라도 각 신청서를 따로 센다. 반대로 원래 문자열에 사용된 붙임표의 개수나 대소문자 모양이 달라도 대표 표기가 같으면 등장 횟수를 합친다. 안내판에는 등장 횟수가 가장 많은 대표 표기 하나를 사용한다. 가장 많이 등장한 대표 표기가 여러 개라면 사전순으로 가장 앞서는 것을 고른다. 여기서 사전순은 왼쪽부터 처음으로 다른 글자를 비교하여 알파벳에서 앞선 글자가 있는 문자열을 먼저 놓는 순서다. 한 문자열이 다른 문자열의 접두사라면 길이가 짧은 문자열을 먼저 놓는다. 모든 신청서의 별칭에는 영문자가 적어도 하나 있으므로 대표 표기가 빈 문자열이 되는 경우는 없다. 신청서도 적어도 한 장 주어지므로 안내판에 사용할 별칭은 항상 정해진다. 주어진 신청서들을 정리하여 선택된 대표 표기와 그 등장 횟수를 출력하는 프로그램을 작성한다.

입력

첫째 줄에 신청서의 개수를 나타내는 정수 N이 주어진다. 1 ≤ N ≤ 10,000이다.
다음 N개의 줄에 신청서에 적힌 별칭이 한 줄에 하나씩 주어진다. 각 별칭의 길이는 1 이상 20 이하이며, 영문 대문자, 영문 소문자, '-'로만 이루어진다. 각 별칭에는 영문자가 적어도 하나 있다.
모든 별칭의 길이의 합은 100,000 이하이다.

출력

선택된 대표 표기와 그 등장 횟수를 공백 하나로 구분하여 한 줄에 출력한다. 대표 표기는 영문 소문자로 출력한다.

예제 입력 1

6
P-iNe
pi--ne
PINE
Oak
o-a-k
Reed

예제 출력 1

pine 3

예제 입력 2

4
B-a-y
A-S-H
bay
ash

예제 출력 2

ash 2

예제 입력 3

3
A--B
-a-
A-B-C

예제 출력 3

a 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 / 테스트측정하지 않음(브라우저 채점)