문제 3960 · 바이트 V
구매 뒤에 남은 관심 상품
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 온라인 쇼핑몰은 고객에게 관심 상품의 재입고 소식을 보내는 기능을 운영한다. 알림을 보내기 전에는 고객의 관심 등록 기록과 구매 기록을 대조하여 알림 대상 상품을 정한다. 이미 구매한 상품은 다시 안내할 필요가 없으므로 알림 대상에서 제외한다. 상품 코드는 영어 대문자 두 글자로 이루어진다. 두 글자가 모두 같은 코드만 같은 상품을 뜻한다. 예를 들어 AB와 BA는 서로 다른 상품이다. 관심 등록 기록에는 고객이 관심 버튼을 누른 상품 코드가 저장된다. 여러 화면에서 같은 상품을 등록할 수 있으므로 하나의 상품 코드가 여러 번 나타날 수 있다. 구매 기록에도 같은 상품을 여러 번 주문한 내역이 남을 수 있다. 두 기록에 등장하는 순서는 알림 대상 판정에 영향을 주지 않는다. 알림 대상 상품은 관심 등록 기록에 한 번 이상 나타나고, 구매 기록에는 한 번도 나타나지 않은 상품이다. 관심 등록 횟수가 여러 번이어도 해당 상품에 대한 알림은 한 번만 보낸다. 구매 기록에만 있는 상품은 알림 대상이 아니다. 한 상품을 구매한 횟수나 그 상품의 관심 등록 횟수를 서로 빼서 판단하지 않으며, 구매 기록에 한 번이라도 있으면 해당 상품을 제외한다. 두 기록은 이번 알림 발송에 사용할 전체 기록이며, 추가 등록이나 구매 취소는 없다. 관심 등록 기록 또는 구매 기록이 비어 있을 수 있다. 두 기록이 모두 비어 있을 수도 있다. 모든 관심 상품을 이미 구매했거나 관심 등록 기록이 비어 있으면 보낼 알림이 없다. 기록을 대조하여 서로 다른 알림 대상 상품이 몇 개인지 구한다.
입력
첫째 줄에 관심 등록 기록의 개수 N과 구매 기록의 개수 M이 공백으로 주어진다. N과 M은 정수이며 0 ≤ N, M, N + M ≤ 100,000이다. 둘째 줄에 관심 등록 기록의 상품 코드 N개가 공백으로 주어진다. 셋째 줄에 구매 기록의 상품 코드 M개가 공백으로 주어진다. 개수가 0인 기록의 줄은 빈 줄이다. 모든 상품 코드는 영어 대문자 A부터 Z까지로 이루어진 길이 2의 문자열이다.
출력
서로 다른 알림 대상 상품의 개수를 정수 하나로 출력한다. 알림 대상이 없으면 0을 출력한다.
예제 입력 1
6 4 AB CD AB EF GH CD CD ZZ CD GH
예제 출력 1
2
예제 입력 2
3 3 AA AA BC BC AA AA
예제 출력 2
0
예제 입력 3
0 0
예제 출력 3
0
힌트 펼치기
- 각 기록에서 같은 상품이 여러 번 나타나는 것은 판정에 영향을 주지 않는다.
- 관심 상품의 집합에서 구매 상품의 집합에 속한 원소를 제외한다.
관련 서재 장
알고리즘 분류
해시집합문자열풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |