1. 첫번째 코드
- O(n^2)
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
# 맨 앞의 element부터 차례대로 더한 후 맞는 값 return
idx = 0
while idx < len(nums):
num = nums[idx]
for i in range(idx+1, len(nums)):
if num + nums[i] == target:
return [idx, i]
idx += 1
2. 두번째 코드
- Hash Table 이용
'''
x를 고정하고 target-x가 존재하는지 확인
존재하면 index return
'''
class Solution(object):
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
dic = {}
i = 0
for num in nums:
if target - num in dic:
return dic[target - num], i
dic[num] = i
i += 1
반응형
'자료구조&알고리즘 > 알고리즘-문제풀이' 카테고리의 다른 글
Leetcode-easy-9. Palindrome Number (0) | 2020.07.14 |
---|---|
Leetcode-easy-7. Reverse Integer (0) | 2020.07.14 |
[프로그래머스-Level2] 프린터 (0) | 2020.06.24 |
[프로그래머스-Level1] 같은 숫자는 싫어 (0) | 2020.06.22 |
[프로그래머스-Level1] 하샤드수 (0) | 2020.06.21 |