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

Ambition님의 프로필 이미지
Ambition

작성한 질문수

코딩테스트 [ ALL IN ONE ]

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

two_sum 딕셔너리 문제 코드관련 질문이 있습니다.

해결된 질문

작성

·

310

1

class Solution(object):
    def twoSum(self, nums=[3,3], target=6):
        ans = []
        dict = {}
        for i,v in enumerate(nums):
            if target-v in dict:
                ans.append(prev)
                ans.append(i)
                return ans
            dict[v] = i
            prev = i

이렇게하면, for문 안에서 리스트를 append하는거니까 총 O(n) 하는거아닌가요? 왜 예시 테스트케이스는 통과를 했는데 리트코드에서 submit을 누르면 나머지 테스트케이스는 통과하지 못하는거죠 ㅜㅜ

답변 1

1

Ambition님의 프로필 이미지
Ambition
질문자

아 찾았습니다. 저도 모르게 nums = [3,3], target = 6의 테스트케이스를 기준으로 해서 prev를 리스트처럼 순서에 의존하다보니 틀리는거였군요 따라서 모범답안과 같이 해당하는 키의 value를 추가하기 위해 ans.append(my_dict[target-v])와 ans.append(i)로 하는게 맞는거 같습니다

추가로, chatgpt로 질문을 해봤는데 dict는 파이썬의 예약어로 되어있어서 덮어씌울 위험이 있기 때문에 my_dict와 같이 변수명을 설정해주는 것이 좋다고 합니다 :)

Ambition님의 프로필 이미지
Ambition

작성한 질문수

질문하기