파이썬 알고리즘-39 (해시) 단어 찾기

jiffydev·2020년 9월 10일
0

Algorithm

목록 보기
45/134
post-thumbnail

39.단어 찾기
현수는 영어로 시는 쓰는 것을 좋아합니다.
현수는 시를 쓰기 전에 시에 쓰일 단어를 미리 노트에 적어둡니다.
이번에는 N개의 단어를 노트에 적었는데 시에 쓰지 않은 단어가 하나 있다고 합니다.
여러분이 찾아 주세요.

▣ 입력설명
첫 번째 줄에 자연수 N(3<=N<=100)이 주어진다.
두 번째 줄부터 노트에 미리 적어놓은 N개의 단어가 주어지고, 이어 바로 다음 줄부터 시에
쓰인 N-1개의 단어가 주어진다.

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

▣ 입력예제 1
5 b
ig
good
sky
blue
mouse
sky
good
mouse
big

▣ 출력예제 1
blue

내 코드

n=int(input())
lst=[]
used=[]
for _ in range(n):
    lst.append(input())
for _ in range(n-1):
    used.append(input())

while lst:
    word=lst.pop()
    if word in used:
        continue
    else:
        print(word)
        break

답은 맞았는데 문제의 의도는 딕셔너리를 사용하는 것이었다.

풀이

n=int(input())
p=dict()
for i in range(n):
    word=input()
    p[word]=1
for i in range(n-1):
    word=input()
    p[word]=0
for key, val in p.items():
    if val==1:
        print(key)
        break

반성점

  • 더 빠른 알고리즘이 있는지 다양한 방법을 고려하면서 문제를 풀어야 한다.

배운 것

  • 딕셔너리가 탐색 속도가 더 빠르므로, 딕셔너리를 쓸 수 있는 문제라면 딕셔너리를 쓰는게 낫다.
profile
잘 & 열심히 살고싶은 개발자

0개의 댓글