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개밖에 없다고 가정하겠습니다.
nums
에서 두 수를 구해야 하므로, 이중 형태의 for 문
이 와야 한다.for 문
안에 if 문
을 넣어 두 수를 더해서 원하는 값이 나오면 return
하도록 하자.None
을 반환하도록 하자.def two_sum(nums, target):
for i in nums:
for j in nums:
if ('조건문'):
return '원하는 값의 배열'
return None
우선 팀원과 이야기를 해 보았는데,
중복을 허용하기로 하고 접근을 하였다.
new_list
)를 만든 다음, 원하는 두 수가 나오면append
매서드를 이용하여new_list
에 해당 요소의 index
를 넣었다.def two_sum(nums, target):
new_list = []
for i in nums:
for j in nums:
if i + j == target:
new_list.append(nums.index(i))
new_list.append(nums.index(j))
return new_list
return None
List
를 만들지 않고,[]
와 ,
를 넣었다.def two_sum(nums, target):
for i in nums:
for j in nums:
if i + j == target:
return [nums.index(i), nums.index(j)]
return None
for ... in
에서 range
를 활용했다.nums
대신 len(nums)
를 썼고,j
에 대한 for 문
에서 시작점을 0
대신 i+1
으로 활용하여j
는 항상 i
보다 항상 뒤에서 시작되어def two_sum(nums, target):
for i in range(0, len(nums)):
for j in range(i+1, len(nums)):
if nums[i] + nums[j] == target:
return [i, j]
and
조건을 활용하였다.index 값
뿐만 아니라 요소 값
도 달라야 한다.None
만 출력된다.def two_sum(nums, target):
for i in range(len(nums)):
for j in range(len(nums)):
if ((nums[i] + nums[j]) == target) and (nums[i] != nums[j]) and i != j:
return [i, j]