import sys
n, m = map(int, sys.stdin.readline().split())
heard = []
for _ in range(n):
heard.append(sys.stdin.readline().rstrip())
seen = []
for _ in range(m):
seen.append(sys.stdin.readline().rstrip())
who_are_u = []
for x in heard:
if x in seen:
who_are_u.append(x)
print(len(who_are_u))
who_are_u.sort()
for x in who_are_u:
print(x)
리스트를 사용해서 리스트에 있는지 없는지를 확인하고자 하였으나... 시간 초과가 나왔다.
(🥲 시간 초과 죽여줘......)
import sys
n, m = map(int, sys.stdin.readline().split())
heard = set()
for _ in range(n):
heard.add(sys.stdin.readline().rstrip())
seen = set()
for _ in range(m):
seen.add(sys.stdin.readline().rstrip())
who_are_u = sorted(list(heard & seen))
print(len(who_are_u))
for x in who_are_u:
print(x)
코드 설명
💡 집합 자료형: set() 사용하기!
heard
와seen
을 각각 하나의 집합이라고 할 때,
우리가 구해야하는 것은heard
Useen
두 집합 heard
와 seen
의 교집합을 구하기 위해서 &
을 사용했고, 그 명단을 사전순으로 출력하라고 하였으므로 sorted()
로 정렬하였다.
⭐️ 집합 자료형의 특징
- 중복 허용 X
- 순서가 없다(Unordered)