문제 4609 · 바이트 II
한 교대에만 보인 상품
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 편의점은 진열 상태를 살펴보기 위해 오전 교대와 오후 교대에 각각 상품 코드를 스캔했다. 직원은 매대를 따라 이동하면서 눈에 보이는 상품을 자유롭게 스캔했으므로 같은 상품 코드가 한 교대의 목록에 여러 번 들어갈 수 있다. 두 목록의 길이도 서로 다르며, 스캔 순서 역시 상품 코드의 순서와 관계가 없다. 점장은 두 교대에서 관찰된 상품 구성이 얼마나 달랐는지 확인하려 한다. 이를 위해 정확히 한 교대의 목록에서만 발견된 상품 코드를 모아 별도의 확인 목록을 만든다. 오전 목록에 한 번 이상 등장하고 오후 목록에는 전혀 등장하지 않은 코드는 확인 대상이다. 반대로 오후 목록에 한 번 이상 등장하고 오전 목록에는 전혀 등장하지 않은 코드도 확인 대상이다. 두 목록에 모두 등장한 코드는 등장 횟수가 서로 다르더라도 확인 대상이 아니다. 상품 코드 하나는 상품의 종류 하나를 뜻하며, 같은 교대에서 같은 코드가 반복되어도 새로운 종류가 추가되는 것은 아니다. 예를 들어 어떤 코드가 오전에 세 번, 오후에 한 번 등장했다면 두 교대에서 모두 관찰된 상품이므로 제외한다. 오전에만 네 번 등장했다면 확인 목록에는 그 코드를 한 번만 넣는다. 스캔하지 않은 이유나 실제 재고 수량은 이 작업에서 추측하지 않는다. 오직 주어진 두 목록에 코드가 존재하는지만 사용한다. 확인 목록에 들어가는 서로 다른 상품 코드의 수를 구하고, 해당 코드들을 사전순으로 출력해야 한다. 코드는 영문 소문자로만 이루어지며, 사전순은 앞에서부터 문자를 비교했을 때 처음 다른 문자가 알파벳에서 앞서는 쪽이 먼저 오는 순서다. 한 코드가 다른 코드의 접두사이면 짧은 코드를 먼저 둔다. 확인할 코드가 하나도 없다면 개수 0만 출력하고 상품 코드 줄은 출력하지 않는다.
입력
첫째 줄에 오전 스캔 수 N과 오후 스캔 수 M이 공백으로 주어진다. N과 M은 정수이며, 0≤N, M≤100,000이고 1≤N+M≤100,000이다. 다음 N개 줄에 오전에 스캔한 상품 코드가 하나씩 주어진다. 이어지는 M개 줄에 오후에 스캔한 상품 코드가 하나씩 주어진다. 각 코드는 길이가 1 이상 20 이하인 영문 소문자 문자열이다.
출력
첫째 줄에 확인 대상인 서로 다른 상품 코드의 수 K를 출력한다. 다음 K개 줄에 확인 대상 코드를 사전순으로 하나씩 출력한다. K가 0이면 첫째 줄만 출력한다.
예제 입력 1
5 4 milk bread milk tea rice tea juice juice milk
예제 출력 1
3 bread juice rice
예제 입력 2
2 3 snack water water snack water
예제 출력 2
0
예제 입력 3
0 3 aa a aa
예제 출력 3
2 a aa
힌트 펼치기
- 각 교대의 목록을 중복 없는 집합으로 바꾼다.
- 두 집합 중 정확히 하나에만 속하는 원소를 찾는다.
관련 서재 장
알고리즘 분류
해시집합정렬풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |