[알고리즘] 단어 찾기 (Hash)

(문제) 단어 찾기


현수는 영어로 시는 쓰는 것을 좋아합니다.

현수는 시를 쓰기 전에 시에 쓰일 단어를 미리 노트에 적어둡니다.

이번에는 N개의 단어를 노트에 적었는데 시에 쓰지 않은 단어가 하나 있다고 합니다.

여러분이 찾아 주세요.

입력설명

첫 번째 줄에 자연수 N(3<=N<=100)이 주어진다.

두 번째 줄부터 노트에 미리 적어놓은 N개의 단어가 주어지고, 이어 바로 다음 줄부터 시에 쓰인 N-1개의 단어가 주어진다.

출력설명

첫 번째 줄에 시에 쓰지 않은 한 개의 단어를 출력한다.

테스트케이스

입력예제 출력예제
5
big
good
sky
blue
mouse
sky
good
mouse
big
blue
7
big
good
sky
blue
dkfkjgk
mouse
dkfjkqhgk
sky
good
mouse
big
blue
dkfkjgk
dkfjkqhgk

해결방법

  • 딕셔너리를 이용하여 입력값을 key로 만들고 value는 1로 통일화 시킨다.
  • 만약 다음 입력에 key와 같은 값이 있을 경우 key로 만든 value는 0으로 만들어 딕셔너리에 남아있는 1의 key 값을 출력한다.

코드

n = int(input())
p = dict()

for _ in range(n):
    word = input()
    p[word] = 1

for _ in range(n-1):
    word = input()
    p[word] = 0

for key, val in p.items():
    if val == 1:
        print(key)
        break

댓글남기기