반응형
1. 문제

- 정수 배열 nums와 정수 target이 주어질 때, 요소 2개의 합이 target이 되는 두 인덱스 배열을 반환하라.
- 오직 1개만 만족하는 쌍이 존재한다.
2. 해결
function twoSum(nums: number[], target: number): number[] {
const map = new Map<number, number>();
for(let i = 0; i <nums.length; i++) {
map.set(nums[i], i);
}
for(let i = 0; i <nums.length; i++) {
const rest = target - nums[i];
if(map.has(rest)) {
const idx = map.get(rest);
if((target - nums[i] - nums[idx]) === 0 && idx !== i) return [i, idx]
}
}
};
- 탐색하면서 target에서 뺀 값을 맵핑하기 위한 map을 구성.
- target에서 뺀 값이 map에 존재하면, 해당 인덱스 정보를 활용해 0이 되는지 확인.