[개인 정리]/[알고리즘]

알고리즘 - Two Sum (Python 코드)

로얄거북 2020. 12. 21. 16:12
반응형

 문제

주어진 정수들 중에서, 총합하여 목표값을 계산할 수 있는 2 개의 요소들을 찾아라.

 

가정 1 - 정답이 존재하다면, 딱 하나의 set만 존재한다.

가정 2 - 총합할 때 같은 숫자를 2 번 사용할 수는 없다.

 

 

 예시

Input  : [1, 3, 7, 10]
Target : 8

정답 : [0, 2]

이유 :

1 + 7 = 8

  [1, 3, 7, 10]에서의 1의 위치 : 0

  [1, 3, 7, 10]에서의 7의 위치 : 2

   --> 답 [0, 2]

 

 

 알고리즘

INPUT = [1, 3, 7, 10]
TARGET = 8

def twoSum(numbers, target):
    dictionary = dict()
    for i in range(len(numbers)):
        complement = target - numbers[i]
        if complement in dictionary:
            return [dictionary[complement], i]
        dictionary[numbers[i]] = i
    
    print("Cannot Find Solution")
    return None


result = twoSum(INPUT, TARGET)
print(result)
출력결과 : [0, 2]

 

반응형