반응형
문제
주어진 정수들 중에서, 총합하여 목표값을 계산할 수 있는 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]
반응형
'[개인 정리] > [알고리즘]' 카테고리의 다른 글
알고리즘 - 대칭수 (Palindromic number) (Python 코드) (0) | 2020.12.21 |
---|