본문 바로가기
Programming/Python

[LeetCode] 1. Two Sum

by 왕밤빵도라에몽 2025. 5. 4.
728x90

기본 아이디어

  • 이중포문하면 되겠지만 느릴듯

이중포문 - O(n²)

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        for i in range(len(nums)-1):
            for j in range(i+1, len(nums)):
                if nums[i] + nums[j] == target:
                    return [i, j]

해시 - O(n)

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        num_map = {}
        for i, num in enumerate(nums):
            diff = target - num
            if diff in num_map:
                return [num_map[diff], i]
            num_map[num] = i
  • target - num이라는 diff값이 이미 num_map에 존재한다면, 이건 target으로 만들기가 가능한 조합이라는 뜻!
  • 그러므로 바로 반환
  • 메모이제이션 처럼 값 저장해놓는 것

  • 리트코드 첨 써봐!
728x90

'Programming > Python' 카테고리의 다른 글

[LeetCode] 9. Palindrome Number  (0) 2025.05.05
[프로그래머스] 의상  (0) 2025.04.30
[프로그래머스] H-Index  (0) 2025.04.14
[프로그래머스] 네트워크  (0) 2025.04.13
[프로그래머스] 모음사전  (0) 2025.04.12