View

문제

two_sum함수에 숫자 리스트와 '특정 수'를 인자로 넘기면, 더해서 '특정 수'가 나오는 index를 배열에 담아 return해 주세요.

nums: 숫자 배열 target: 두 수를 더해서 나올 수 있는 합계 return: 두 수의 index를 가진 숫자 배열

예를 들어,

nums은 [4, 9, 11, 14] target은 13 nums[0] + nums[1] = 4 + 9 = 13 이죠? 그러면 [0, 1]이 return 되어야 합니다.

 

가정

target으로 보내는 합계의 조합은 배열 전체 중에 2개 밖에 없다고 가정하겠습니다.

 

풀이

#1

# def two_sum(nums, target):
#     for a in range(len(nums)):
#       for b in range(len(nums)):
#         if a != b:
#           sum = nums[a] + nums[b] 
#           if sum == target:
#             return [a, b] 


#2

# def two_sum(nums, target):
#     for a in nums:
#       b = target - a
#       if b in nums:
#         return [nums.index(a), nums.index(b)]   


#3

# def two_sum(nums, target):
#   for a in enumerate(nums):
#     b = target - a[1]
#     if b in nums:
#       return [a[0], nums.index(b)]   


# 4 

왜 이게 되는 것일까?

# def two_sum(nums, target):
#   for a in nums:
#     return [nums.index(a), nums.index(target - a)]

 

Share Link
reply
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31