반응형
문제
시간 제한 : 2초, 메모리 제한 : 256 MB
김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 영어 소문자로만 이루어지며, 그 길이는 20 이하이다. N, M은 500,000 이하의 자연수이다.
출력
듣보잡의 수와 그 명단을 사전순으로 출력한다.
입출력 예
제출 코드
import sys
n, m = map(int, input().split())
n_lst = set([sys.stdin.readline().strip() for i in range(n)])
m_lst = set([sys.stdin.readline().strip() for i in range(m)])
result = sorted(list(n_lst & m_lst))
print(len(result))
for i in result:
print(i)
문제의 핵심
# 1
듣도 못한 사람의 명단과 보도 못한 사람의 명단의 교집합을 찾는 문제이므로 set 자료형을 이용하면 손쉽게 해결할 수 있다.
라인 별 풀이
(1) line 3, 4
듣도 못한 사람을 n_lst에 입력받고 set자료형으로 만들어주고, 보도 못한 사람의 명단도 m_lst에 입력받아 set 자료형으로 만들어준다.
(2) line 5
set자료형의 & 연산을 이용하여 듣도 보도 못한 사람의 명단을 만들고 그것을 list 자료형으로 캐스팅한다. 또한, 출력값을 사전 순으로 출력하라고 했으므로 정렬을 해주고 해당 리스트를 result에 할당한다.
Source : https://www.acmicpc.net/problem/1764
반응형
'PS > 백준' 카테고리의 다른 글
[백준 알고리즘][파이썬/Python] 11723번: 집합 (1) | 2020.06.21 |
---|---|
[백준 알고리즘][파이썬/Python] 1748번: 수 이어 쓰기 1 (0) | 2020.04.18 |
[백준 알고리즘][파이썬/Python] 1057번: 토너먼트 (0) | 2020.04.16 |
[백준 알고리즘][파이썬/Python] 1500번: 최대 곱 (0) | 2020.04.15 |
[백준 알고리즘][파이썬/Python] 1812번: 사탕 (0) | 2020.04.14 |