CODETAKA 1-1

97woo·2022년 2월 14일
0

codetaka

목록 보기
1/4

문제

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

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

nums은 [4, 9, 11, 14]
target은 13

nums[0] + nums[1] = 4 + 9 = 13 이죠?

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

nums[0] + nums[1] = 4 + 9 = 13 이죠?

그러면 [0, 1]이 return 되어야 합니다.

가정

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

생각

첫날이라 그런지 굉장히 막막했다. 어떻게 풀어야 좋을까 고민하다
광일님께서 for문을 돌려서 target - i를 하자고 하셨다.
target에서 -i를 뺀 값이 nums에도 있으면 정답을 찾을수 있는 아이디어여서 굉장히 괜찮은 아이디어 라고 생각이 됬다.
어느정도 답에 근접 했는데 .. nums의 인덱스번호로 추출이 되어야 됬다
인덱스함수로 값을 알면 인덱스번호를 찾을수 있는걸 알아낸후
풀어보았는데 적중했다.

정답

def two_sum(nums, target):
    num1 = []
    for i in nums:
      a = target - i
      if a in nums:
        num1.append(i)
        num1.append(a)
        break
     return [nums.index(num1[0]), nums.index(num1[1])]



profile
한 발씩 나아가는중

0개의 댓글