Two Sum
문제 파악
주어진 배열에서 target과 일치하는 두개의 값(한 가지 만 존재)의 인덱스를 반환 하는 것이다.
접근 방법
- 딕셔너리 생성: 배열의 값과 인덱스를 매핑할 딕셔너리를 생성 후 저장(보수 값 빠르게 확인 가능).
- 반복문: 배열을 반복하면서 각 숫자에 대한 target의 보수를 계산.
- 조건: 보수 값이 딕셔너리에 있는지 확인하고, 동시에 현재 인덱스와 보수의 인덱스가 같은지 확인(중복 인덱스 방지).
- 결과값 반환: 조건문 일치시 현재 인덱스와 보수의 인덱스를 반환.
코드 구현
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
dic = {}
for i, v in enumerate(nums):
dic[v] = i
for i, v in enumerate(nums):
complement = target - v
if complement in dic and i != dic[target-v]:
return [i, dic[target-v]]
배우게 된 점
is not
연산자와!=
연산자의 차이를 알게됨is not
: 객체 까지 비교 ex) 3 is 3.0 : False==
: 값만 비교 ex) 3 == 3.0 : True
Leave a comment