[LeetCode] Two Integer Sum

Yunju·2024년 10월 5일

!! 풀지 못했던 문제

LeetCode Answer

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        prevMap = {}  # val -> index
        
         for i, n in enumerate(nums):
            diff = target - n
            if diff in prevMap:
                return [prevMap[diff], i]
            prevMap[n] = i
  • enumerate()는 파이썬의 내장 함수로, 반복 가능한 객체(리스트, 튜플 등)를 인덱스와 값 형태로 반환해줍니다. 즉, enumerate()를 사용하면 반복문을 돌 때 해당 요소의 인덱스와 값을 동시에 가져올 수 있습니다.
#일반적인 문법
for index, value in enumerate(리스트):
    print(index, value)
    
    
#example
nums = [10, 20, 30, 40]

for i, num in enumerate(nums):
    print(i, num)
    
    
'''
result :
0 10
1 20
2 30
3 40
'''

example에 넣으면 이런 느낌

  • for문은 [(0,3),(1,4),(2,5),(3,6)] = enumerate(nums) 이것을 i와 n으로 돌림. 그래서 diff=targe-n으로 diff값을 만듦. 그러고 diff값이 prevMap 딕셔너리에 없으면 prevMap[n]을 키값으로 두고, i를 value값으로 넣음. 만약에 diff값이 prevMap에 있다면 그 diff값을 키로 가지고 있는 값(원래 인덱스였던)과 그 for문의 i를 반환함.

0개의 댓글