본 포스팅은 문제의 풀이 보단 작성자의 개인적인 정리에 가깝습니다.
그냥 이 사람은 이렇게 풀었구나 정도로 봐주시면 감사하겠습니다
https://www.acmicpc.net/problem/1764
문제
김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 알파벳 소문자로만 이루어지며, 그 길이는 20 이하이다. N, M은 500,000 이하의 자연수이다.
듣도 못한 사람의 명단에는 중복되는 이름이 없으며, 보도 못한 사람의 명단도 마찬가지이다.
출력
듣보잡의 수와 그 명단을 사전순으로 출력한다.
예제 입력
3 4
ohhenrie
charlie
baesangwook
obama
baesangwook
ohhenrie
clinton
예제 출력
2
baesangwook
ohhenrie
풀이
import sys
def set_dic(dic,line):
if(dic.get(line)==None):
dic[line]=1
else:
dic[line]=2
return dic
def get_list(dic):
lis = []
for i in dic.keys():
if(dic[i]>=2):
lis.append(i)
return sorted(lis)
n, m = list(map(int,sys.stdin.readline().strip().split()))
dic = {}
for i in range(n):
line = sys.stdin.readline().strip()
dic = set_dic(dic,line)
for i in range(m):
line = sys.stdin.readline().strip()
dic = set_dic(dic,line)
lis=get_list(dic)
print(len(lis))
for i in lis:
print(i)
답은 위와 같습니다
단순하게 딕셔너리를 선언하고 듣도 못한 놈일 경우 +1, 보도 못한 놈일 경우 +1
2이상인 경우를 듣보잡이라 판단해서 출력합니다
반응형
'알고리즘 문제 > 백준' 카테고리의 다른 글
백준 11399번: ATM (0) | 2024.05.20 |
---|---|
백준 1104번: 동전 0 (0) | 2024.05.20 |
백준 1620번: 나는야 포켓몬 마스터 이다솜 (3) | 2024.05.20 |
백준 11723번: 집합 (0) | 2024.05.20 |
백준 1003번: 피보나치 함수 (1) | 2024.05.20 |