<문제>
링크 : https://www.acmicpc.net/problem/1764
1764번: 듣보잡
첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.
www.acmicpc.net
<코드>
import sys
input = sys.stdin.readline
N, M = map(int, input().split())
s1= set()
s2= set()
for _ in range(N):
s1.add(input().strip())
for _ in range(M):
s2.add(input().strip())
s = sorted(list(s1.intersection(s2)))
n = len(s)
print(n)
for i in range(n):
print(s[i])
# s = s1.intersection(s2)
# result = [i for i in s]
# n = len(result)
# result.sort()
# print(n)
# for i in range(n):
# print(result[i])
<풀이>
- 입력받은 명단을 집합으로 나타내고 교집합 intersection을 이용해 두 집합에 겹치는 단어를 구한다.
- 집합을 리스트로 변경해서 사전순으로 출력한다.
- sorted(list(s1.intersection(s2))) : 집합을 리스트로, 교집합, 정렬을 한줄로 가능함!!
참고 : https://github.com/Junuux/Algorithm/tree/main/Silver/1764
GitHub - Junuux/Algorithm
Contribute to Junuux/Algorithm development by creating an account on GitHub.
github.com
'Algorithm' 카테고리의 다른 글
백준 17413번 : 단어 뒤집기 2 (0) | 2022.01.25 |
---|---|
백준 1972번 : 놀라운 문자열 (0) | 2022.01.25 |
백준 11725번 : 트리의 부모 찾기 (0) | 2022.01.16 |
백준 11724번 : 연결 요소의 개수 (0) | 2022.01.16 |
백준 2606번 : 바이러스 (0) | 2022.01.16 |