문제 3756 · 바이트 IV
두 기록에 남은 장비
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
사내 IT 지원실은 장비 점검을 위해 두 종류의 기록을 모았다. 첫 번째는 직원들이 지원 창구에 문의하면서 남긴 장비 번호 기록이고, 두 번째는 점검 담당자가 현장을 돌며 확인한 장비 번호 기록이다. 지원실은 두 기록에 모두 나타나는 장비를 골라 후속 점검 대상으로 삼으려 한다. 각 장비에는 1 이상 999 이하의 정수 번호가 붙어 있다. 같은 번호는 항상 같은 장비를 뜻하고, 서로 다른 번호는 서로 다른 장비를 뜻한다. 기록 하나에는 장비 번호가 한 번 이상 등장할 수 있다. 직원이 같은 장비로 여러 번 문의하거나 담당자가 같은 장비를 여러 번 확인하면, 해당 번호가 그 기록 안에 반복해서 남는다. 반복 횟수 자체는 후속 점검 대상의 수에 영향을 주지 않는다. 어떤 장비가 후속 점검 대상이 되려면 첫 번째 기록에 적어도 한 번 나타나고, 두 번째 기록에도 적어도 한 번 나타나야 한다. 한쪽 기록에만 여러 번 나타난 장비는 대상이 아니다. 두 기록에 모두 나타나는 장비는 각 기록에서 몇 번 등장했든 대상 하나로 센다. 기록에서 번호가 등장한 위치나 순서는 고려하지 않는다. 첫 번째 기록의 길이는 N이고 두 번째 기록의 길이는 M이다. 두 길이는 각각 1 이상의 정수이며, N과 M의 합은 100,000 이하이다. 두 기록에는 같은 번호가 연속해서 나타날 수도 있고, 서로 떨어진 위치에서 다시 나타날 수도 있다. 모든 번호가 같거나 두 기록에 공통 번호가 전혀 없는 경우도 입력으로 주어질 수 있다. 지원실이 후속 점검해야 하는 서로 다른 장비의 수를 구한다. 번호 목록을 정렬해서 출력할 필요는 없으며 개수만 출력한다. 조건을 만족하는 장비가 하나도 없으면 0을 출력한다. 장비마다 우선순위를 정하지 않으므로 동점 처리 규칙은 없다.
입력
첫째 줄에 정수 N과 M이 공백으로 구분되어 주어진다. 둘째 줄에 첫 번째 기록의 장비 번호 N개가 주어진다. 셋째 줄에 두 번째 기록의 장비 번호 M개가 주어진다. 1 ≤ N, M, N + M ≤ 100,000이다. 모든 장비 번호는 1 이상 999 이하의 정수이다.
출력
두 기록에 모두 등장하는 서로 다른 장비 번호의 개수를 출력한다. 공통 번호가 없으면 0을 출력한다.
예제 입력 1
6 5 12 12 47 81 47 90 47 12 12 55 47
예제 출력 1
2
예제 입력 2
3 4 6 6 18 20 31 20 31
예제 출력 2
0
예제 입력 3
2 3 999 999 999 999 999
예제 출력 3
1
힌트 펼치기
- 각 기록을 집합으로 바꾸면 반복된 번호가 하나로 합쳐진다.
- 두 집합의 교집합 크기를 구한다.
관련 서재 장
알고리즘 분류
해시집합풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |