sm 기술 블로그

94. 1764(듣보잡) 본문

문제/백준_파이썬

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을 추가시켜 출력해주었다.

Comments