[CodeKata] Week1 - Day1

📌 CodeKata - Week1, Day1

문제

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): # 리스트, 리스트이 두수를 더했을 때 나오는 합계
    arr = [] # 답을 넣기 위해 
    length = len(nums) 
    for i in range(length):
        for j in range(length):
            if  nums[i] + nums[j]  == target:
                arr.append(i)
                arr.append(j)
                return arr

➡️ 처음에 재경님이랑 풀었던 방식. 빈 리스트를 만들고 정답 하나씩 추가하고 nums의 길이도 따로 구해 변수에 넣어줌.

풀이2

def two_sum(nums, target): # 리스트, 리스트이 두수를 더했을 때 나오는 합계
    for i in range(0, len(nums)):
        for j in range(i +1 , len(nums)): #중복을 막기 위해 i+1을 시작점으로 
            if nums[i] + nums[j] == target:
                return [i,j] #리스트형으로 return

➡️ 위의 방식에서 필요없는 코드는 빼고 다시 푼 방법

좋은 웹페이지 즐겨찾기