문제 3555 · 바이트 V
다시 등장한 역 코드
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
지하철 안내 설비를 점검하는 작업자는 하루 동안 방문한 역의 코드를 휴대 기록기에 남긴다. 한 역에서 점검을 마치고 다른 역으로 이동한 뒤 다시 돌아올 수 있으므로, 같은 역의 코드가 기록에 여러 번 등장할 수 있다. 이번 작업에서는 기록에 두 번 이상 등장한 역이 몇 곳인지 알아보려고 한다. 각 역의 코드는 영문 소문자로만 이루어진 문자열이다. 두 코드의 길이와 모든 문자가 정확히 같으면 같은 역을 뜻하고, 그렇지 않으면 서로 다른 역을 뜻한다. 코드의 일부가 같거나 한 코드가 다른 코드의 앞부분과 같더라도 같은 역으로 취급하지 않는다. 예를 들어 ra와 ram은 서로 다른 역의 코드로 사용할 수 있다. 기록 한 줄은 해당 역을 한 번 방문했다는 뜻이다. 같은 코드가 이웃한 두 줄에 나오더라도 두 번 방문한 것으로 센다. 기록기에는 이번 작업에 필요한 방문 기록만 들어 있으며, 취소된 방문이나 잘못 입력한 코드는 없다. 입력에 나타나지 않은 역은 이번 계산에서 고려하지 않는다. 구하려는 값은 두 번째 방문 이후에 남긴 기록의 개수가 아니라, 전체 기록에서 방문 횟수가 두 번 이상인 서로 다른 역의 개수다. 어떤 역을 두 번 방문했든 다섯 번 방문했든 그 역은 정답에 1만 더한다. 정확히 한 번 방문한 역은 정답에 포함하지 않는다. 여러 역의 방문 횟수가 같아도 각각 다른 코드라면 별개의 역으로 센다. 방문 기록은 시간순으로 주어지지만, 두 번 이상 등장했는지를 판단할 때 기록 사이의 간격이나 다른 역을 방문한 횟수는 중요하지 않다. 첫 번째 기록과 마지막 기록에만 같은 코드가 등장해도 그 역은 조건을 만족한다. 모든 기록이 서로 다른 역을 나타낼 수도 있고, 모든 기록이 하나의 역을 나타낼 수도 있다. 작업자는 조건을 만족하는 역의 목록이나 방문 횟수 순위를 요구하지 않는다. 조건을 만족하는 서로 다른 역의 개수만 정수로 출력하면 된다. 두 번 이상 등장한 역이 하나도 없다면 0을 출력한다. 주어진 전체 방문 기록을 이용하여 이 값을 구한다.
입력
첫째 줄에 방문 기록 수 N이 주어진다. 다음 N개 줄에 역 코드가 하나씩 주어진다. N은 1 ≤ N ≤ 60,000인 정수다. 각 코드는 길이가 1 이상 5 이하이며 영문 소문자 a부터 z로만 이루어진다. 같은 코드가 여러 번 주어질 수 있다.
출력
전체 기록에 두 번 이상 등장한 서로 다른 역 코드의 개수를 정수 하나로 출력한다. 조건을 만족하는 코드가 없으면 0을 출력한다.
예제 입력 1
8 naro bim naro sol bim naro daru sol
예제 출력 1
3
예제 입력 2
4 ra ram ramp r
예제 출력 2
0
예제 입력 3
5 umu umu umu umu umu
예제 출력 3
1
힌트 펼치기
- 한 번이라도 본 코드와 두 번 이상 본 코드를 각각 집합에 저장할 수 있다.
관련 서재 장
알고리즘 분류
해시집합문자열풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |