[CODEKATA]1-1 . two_sum 알고리즘_python3_TIL

은경·2021년 10월 21일
0
  • two_sum함수에 숫자 리스트와 '특정 수'를 인자로 넘기면, 더해서 '특정 수'가 나오는 index를 배열에 담아 return해 주세요.

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

문제)

nums: 숫자 배열
target: 두 수를 더해서 나올 수 있는 합계
return: 두 수의 index를 가진 숫자 배열
예를들어
nums은 [4, 9, 11, 14]
target은 13 
nums[0] + nums[1] = 4 + 9 = 13 이죠?
그러면 [0, 1]return 되어야 합니다.

풀이 )

def two_sum(nums, target):
  for i in range(len(nums)):
    for j in range(i+1,len(nums)):
      if target == nums[i]+nums[j] :
        return [i,j]
nums = [9,10,4,6]
target = 19
print (two_sum(nums, target))
  • range() 함수는 연속된 숫자(정수)를 만들어줌.
  • range(시작숫자, 종료숫자, step)의 형태로 List slicing 과 비슷하다.
  • 시작숫자부터 종료숫자 바로 앞 숫자까지 슬라이싱 한다.

for 문과 함께 자주 쓰이는 len 함수는 리스트 안의 요소 개수를 돌려주는 함수이다. 따라서 len(nums)는 4가 될 것이고 range(len(nums))는 range(4)가 될 것이다.

if 문을 이용해 타겟이 i+j와 같다면 i,j의 인덱스를 반환하는 함수를 작성했다 .

설명하는게 훨씬 어려운 것 같다 .. 😅
profile
Python 서버 개발자

0개의 댓글