https://www.acmicpc.net/problem/1764
1764번: 듣보잡
첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.
www.acmicpc.net
import sys
a,b = map(int, sys.stdin.readline().split())
listen = []
watch = []
for _ in range(a):
listen.append(sys.stdin.readline().strip())
for _ in range(b):
watch.append(sys.stdin.readline().strip())
listen = set(listen)
watch = set(watch)
result = set(listen & watch)
result = list(result)
result.sort()
print(len(result))
for i in result:
print(i)
처음엔 list로 풀려고 했는데 계속 시간 초과가 나와서 이런 저런 생각을 하다가, 둘 다 포함되는 것을 찾는 것이기 때문에 교집합이 생각났다.
검색을 해보니 set으로 교집합을 쉽게 구할 수 있었다.
오늘 처음 안 사실이 있는데, set은 순서가 없다는 사실이다.. 그래서 set은 sort를 못한다!
(개념 공부를 열심히 해야겠다...ㅠ)
set을 알면 엄청나게 쉽게 풀 수 있는 문제였던 것 같다.
'백준' 카테고리의 다른 글
[백준] 11723번 : 집합 (파이썬) (0) | 2023.07.21 |
---|---|
[백준] 11047번 동전 0 (파이썬) (1) | 2023.07.19 |
[백준] 1003번 : 피보나치 함수 (파이썬) (0) | 2023.07.11 |
[백준] 2108번: 통계학 (파이썬) (1) | 2023.07.02 |
[백준] 1966번: 프린터 큐(파이썬) (1) | 2023.07.01 |