해결된 질문
23.09.23 11:31 작성
·
288
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
2023. 09. 23. 11:45
아 찾았습니다. 저도 모르게 nums = [3,3], target = 6의 테스트케이스를 기준으로 해서 prev를 리스트처럼 순서에 의존하다보니 틀리는거였군요 따라서 모범답안과 같이 해당하는 키의 value를 추가하기 위해 ans.append(my_dict[target-v])와 ans.append(i)로 하는게 맞는거 같습니다
추가로, chatgpt로 질문을 해봤는데 dict는 파이썬의 예약어로 되어있어서 덮어씌울 위험이 있기 때문에 my_dict와 같이 변수명을 설정해주는 것이 좋다고 합니다 :)