문제/백준_파이썬
94. 1764(듣보잡)
sm_hope
2022. 6. 20. 19:54
import sys
input = sys.stdin.readline
N, M = map(int, input().split())
whoIs = list(input().strip() for _ in range(N))
name = list(input().strip() for _ in range(M))
cnt = 0
result = []
whoIsDic = {whoIs[i]: 1 for i in range(len(whoIs))}
for val in name:
try:
whoIsDic[val]
cnt += 1
result.append(val)
except:
continue
resultSorted = sorted(result, key=lambda x: (x))
print(str(cnt))
print("\n".join(resultSorted))
문제 요약
진영씨가 듣지도 보지도 못한 사람을 출력해라.
해설
기존 데이터사전 정리하는것에서 추가로 사전순으로 정렬을 해야 하는 문제이다.
먼저
위에는 듣보잡 목록이고 아래는 입력값으로 생각하면 된다.
for val in name:
try:
whoIsDic[val]
cnt += 1
result.append(val)
except:
continue
몇명인지와 누군지를 출력하기위해 예외없이 정상적으로 데이터 사전이 조회되면 cnt를 1씩 증가시켜준다.
사람 이름은 result에 저장한다.
resultSorted = sorted(result, key=lambda x: (x))
사람이름을 사전순으로 (오름차순) 정렬해주었다.
print(str(cnt))
print("\n".join(resultSorted))
숫자 먼저 출력 후 join을 이용하여 \n을 추가시켜 출력해주었다.