07. 두 수의 합(leetcode: 1)

문제링크

문제 분석

인자 nums 에서 두 값을 더 했을 때 target이 되는 요소를 찾은 뒤 해당 요소의 인덱스를 리턴하면 된다. 문제 자체는 어렵지 않다.

이런 문제에서 정말 유용하게 사용될 수 있는게 우리가 찾길 원하는 값을 MAP의 키 값으로 넣는것.

해결

var twoSum = function(nums, target) {
    let diffMap = new Map();
    for (let i = 0; i < nums.length; i++) {
        if (diffMap.has(target - nums[i])) {
            return [diffMap.get(target - nums[i]), i]
        }
        diffMap.set(nums[i], i);
    }
};

여기서 핵심은 반복을 돌면서

  1. Map의 키로 원하는 값이 있는지를 찾고

  2. 있으면 map 에 존재하는 키의 인덱스와 현재 반복문으 인덱스를 리턴

  3. 없으면 Map 에 현재 요소를 추가

Last updated