728x90
문제 설명
- 덧셈하여 타겟을 만들 수 있는 배열의 두 숫자 인덱스를 리턴하라.
예시
#입력
nums = (2, 7, 11, 15], target = 9
#출력
[0, 1]
#설명
nums[0] + nums[1]= 2 + 7 = 9
풀이
enumerate를 사용하여 리스트 원에 순서값을 부여해준다.
예시로 ( 0 , '2' ) 튜플형태로 담겨 있다.
complement가 7이 되면 nums 배열안에 같은 값을 찾아보고 맞으면 리스트 형태로 반환한다.
nums = [2, 7, 11, 15]
# enumerate를 사용하여 리스트 원에 순서값을 부여해준다.
# 예로 ( 0 , '2') 튜플형태로 담겨 있다.
target = 9
def twoSum(nums: list, target: int) -> list:
for i, n in enumerate(nums):
complement = target - n
print('complement : ' , complement)
print('i : ', i)
print('n : ' , n)
if complement in nums[i + 1:]:
print('complement : ' , complement)
return [nums.index(n), nums[i + 1:].index(complement) + (i + 1)]
print(twoSum(nums, target))
출력
complement : 7
i : 0
n : 2
complement : 7
[0, 1]
728x90
'알고리즘' 카테고리의 다른 글
[파이썬 알고리즘 인터뷰] 배열 - 세수의 합 (0) | 2023.01.15 |
---|---|
[파이썬 알고리즘 인터뷰] 배열 - 빗물 트래핑 (0) | 2023.01.15 |