728x90
반응형
SMALL
시간 제한 | 메모리 제한 | 문제 티어 |
2 초 | 256 MB | 실버 IV |
📜 문제
김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오.
📥입력
첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 알파벳 소문자로만 이루어지며, 그 길이는 20 이하이다. N, M은 500,000 이하의 자연수이다.
듣도 못한 사람의 명단에는 중복되는 이름이 없으며, 보도 못한 사람의 명단도 마찬가지이다.
📤출력
듣보잡의 수와 그 명단을 사전순으로 출력한다.
💡풀이
이 문제의 핵심은 '파이썬 집합 자료형인 Set()를 잘 활용하였는가?' 이다.
우리가 List에 요소를 추가할 때 append()라는 Method를 사용했는데, Set에 요소를 추가할 때는 add()라는 Method를 사용해서 추가한다.
그리고 Set에서 교집합을 구하는 연산인 set1 & set2 또는 set1.interaction(set2) 둘 중 하나를 사용하여 교집합을 구하고, sorted() 함수로 사전순으로 정렬된 리스트를 반환받아 출력하면 끝이다.
아래 코드는 내가 작성한 정답 코드이다.(그나저나 난 변수 네이밍 센스가 없는 것 같다...🤣)
import sys
input = sys.stdin.readline
N, M = map(int, input().rstrip().split())
never_heard_person = set()
never_seen_person = set()
for _ in range(N):
never_heard_person.add(input().rstrip())
for _ in range(M):
never_seen_person.add(input().rstrip())
print(len(never_heard_person & never_seen_person))
print('\n'.join(sorted(never_heard_person & never_seen_person)))
Reference : https://wikidocs.net/1015#_3(파이썬 집합 자료형)
반응형
LIST
'CodingTest > Baekjoon' 카테고리의 다른 글
[백준/Python] 2720번 : 세탁소 사장 동혁이 (0) | 2023.06.06 |
---|---|
[백준/Python] 9935번 : 문자열 폭발 (0) | 2023.06.05 |
[백준/Python] 10816번 : 숫자 카드 2 (0) | 2023.06.03 |
[백준/Python] 1620번 : 나는야 포켓몬 마스터 이다솜 (0) | 2023.06.02 |
[백준/Python] 7785번 : 회사에 있는 사람 (0) | 2023.06.01 |