728x90
문제
상근이와 선영이는 동시에 가지고 있는 CD를 팔려고 한다. CD를 몇 개나 팔 수 있을까?
https://www.acmicpc.net/problem/4158
입력
입력은 여러 개의 테스트 케이스로 이루어져 있다.
각 테스트 케이스의 첫째 줄에는 상근이가 가지고 있는 CD의 수 N, 선영이가 가지고 있는 CD의 수 M이 주어진다.
N과 M은 최대 백만이다.
다음 줄부터 N개 줄에는 상근이가 가지고 있는 CD의 번호가 오름차순으로 주어진다.
다음 M개 줄에는 선영이가 가지고 있는 CD의 번호가 오름차순으로 주어진다.
CD의 번호는 십억을 넘지 않는 양의 정수이다. 입력의 마지막 줄에는 0 0이 주어진다.
상근이와 선영이가 같은 CD를 여러장 가지고 있는 경우는 없다.
출력
두 사람이 동시에 가지고 있는 CD의 개수를 출력한다.
예제
# input
3 3
1
2
3
1
2
4
0 0
# output
2
문제 풀이
import sys
input = sys.stdin.readline
while True:
# N, M 입력 받기
N, M = map(int, input().split())
# N, M이 모두 0일 경우 break
if N == 0 and M == 0:
break
set_N = set()
set_M = set()
# N개의 원소를 set_N에 추가
for _ in range(N):
set_N.add(input())
# M개의 원소를 set_M에 추가
for _ in range(M):
set_M.add(input())
# set_N과 set_M의 교집합의 크기(공통 원소의 개수)를 출력
print(len(set_N & set_M))
파이썬을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90