알고리즘/백준
[python] 백준 1764번 듣보잡
펄찌
2022. 2. 1. 14:12
문제 풀이
간단하게 생각하면 듣도 못한 사람들과 보도 못한 사람들의 교집합을 구하면 되는 문제이다.
합쳐서 듣보잡의 수와 해당하는 사람들을 출력하면 되는 것이다.
예제 입력1에서 듣도 보도 못한 사람들의 교집합에는 ohhennrie baesangwook 두 사람이 있기 때문에 출력의 결과가 이렇다.
여기서 생각한 방법은 set함수를 이용하는 것이었다.
list도 있겠지만 입력에서 보면 N, M은 500,000 이하의 자연수 즉 입력을 N, M 합쳐 백만 번 정도를 돌린다는 소리인데...
분명 시간초과가 날것이기 때문에 list보다는 set을 이용하게 되었다.
집합을 만들어주고 해당 교집합을 구하여 출력할 때 사전 순으로 출력하라고 했기 때문에 정렬 함수인 sorted를 이용해주면 된다.
완성된 코드!!👌😊
N, M = map(int, input().split())
not_listen, not_watch = set(), set()
for i in range(N):
not_listen.add(input())
for i in range(M):
not_watch.add(input())
rs = sorted(not_listen & not_watch)
print(len(rs))
for val in rs:
print(val)