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

소하님의 프로필 이미지
소하

작성한 질문수

코딩테스트 [ ALL IN ONE ]

[코테 적용] 👉 [1번 문제] key in (후반부)

해당 강의 코드 질문입니다

작성

·

250

1

안녕하세요 올려주신 노션 코드에 질문이 있습니다

올려주신 내용엔

memo ={}

for i , num in enumerate(nums):

~~~~~~~

memo[num] = i

이렇게 되어있는데요 이렇게 되면 memo dictionary에 아무것도 없어서 리턴이 안되는거 아닌지 궁금합니다

 

 

답변 1

0

개발남노씨님의 프로필 이미지
개발남노씨
지식공유자

안녕하세요 소하님!

노션 코드에 올려드린것을 보시면

image

memo에 계속 데이터를 추가해주고, 종국엔 원하는 데이터가 memo에 있으면 return을 합니다!

만약 없으면 아무것도 리턴을 하지 않겠네요

 

하지만 해당 문제에서 조건으로 Only one valid answer exists.

이라는 조건이 있습니다.

그래서 사실 무조건 리턴을 하긴해요!!

 

혹시 더 궁금한점이 있으시면 질문 남겨주세요~

소하님의 프로필 이미지
소하
질문자

답변 감사합니다.

제가 이해를 못하는 부분이 있는 거 같은데요

예를들면

memo = {}

for i in nums:

memo[i] = True

 

위 코드가 이런식으로 되어 있지 않고 노션 코드 처럼 되어있을 경우 첫번째 if문 수행하게 되면 memo에 아무런 값이 없기 때문에 실제로는 해당되는 값이 있더라도 찾지 못하는게 아닌가 생각이 들어서요

개발남노씨님의 프로필 이미지
개발남노씨
지식공유자

한번 직접 실행해보시면서 데이터값을 살펴보면 확실하게 아실 수 있을거에요.

 

아무런 값이 없기때문에 실제로는 해당되는 값이 있더라도 찾지 못하는게 맞아요.

다만 나중에는 결국 찾을 수 있게 되서 (for문이 진행됨에 따라서 뒤에서 찾아냅니다.) 문제가 되지 않습니다.

약간 이해하기 쉽지 않다면, dictionary를 모두 채워넣은다음에 진행하셔도됩니다.

소하님의 프로필 이미지
소하

작성한 질문수

질문하기