인프런 커뮤니티 질문&답변

phillnfeel님의 프로필 이미지

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

8. 단어찾기(해쉬)

선생님 이 문제에 제약조건이 더 필요하다고 생각합니다.

작성

·

182

0

안녕하세요 선생님 강의 정말 유익하게 잘 배우고 있습니다. 감사합니다. 문제를 풀면서 시원한느낌이 안들어서 질문드립니다.

input5 같은경우는 good이 2번 주어지고 good이 두번쓰입니다.

input예시

4

good

good

good

big

good

good

big처럼

그렇다면 good이 3번 주어지고 good이 두번 쓰였다면, 쓰지 않은 단어는 good이 됩니다. 이런경우는 영상 풀이로는 해결이 안됩니다.

아니면 문제 설명에 같은 단어가 2번 적혀있으면 2번써야한다던지,  같은 단어면 중복해서 들어가도 된다던지 이러한 제약조건이 있어야 정확한 문제가 될것같네요..

test case에 따라 답이 맞을수도 있고 틀릴수도 있는 여지가 있어보입니다

이부분은 문제의 해석이 모호한거 같다는 느낌이 들어 질문을 남깁니다.

답변 3

1

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

영상을 업로드 하는 것보다 in5.txt 케이스를 단어가 중복되지 않도록 수정하도록 하겠습니다. 

문제 의미상 입력데이터를 바꾸는게 맞는것 같습니다.

1

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

알려주셔서 감사합니다. 정답코드를 아래와 같이 수정하겠습니다. 

영상도 곧 다시 찍어 업로드 하겠습니다. 감사합니다.

import sys
#sys.stdin=open("input.txt", "r")
n=int(input())
p=dict()
for i in range(n):
    word=input()
    p[word]=p.get(word, 0)+1
for i in range(n-1):
    word=input()
    p[word]=p.get(word, 0)-1
for key, val in p.items():
    if val==1:
        print(key)
        break
phillnfeel님의 프로필 이미지
phillnfeel
질문자

네 제가 도움이 되어서 뿌듯하네요 ㅎㅎ

0

안녕하세요, 선생님

다름이 아니라 올려주신 코드에서 정답에는 영향이 없을것 같지만 두번째 for문에서는 
p.get(word, 0) -1 보다  p[word] 가 더 정확할거 같습니다.

이미 있는 단어만 불러올테니 None이 나올리 없을거 같습니다.

감사합니다.

김태원님의 프로필 이미지
김태원
지식공유자

네. 감사합니다. 적용하겠습니다.