개발 공부/알고리즘 문제 풀이

[LeetCode] 1. Two Sum

종범2 2021. 6. 23. 23:43

문제

1. Two Sum

https://leetcode.com/problems/two-sum/

 

Two Sum - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

언어

자바스크립트(JavaScript)

 

접근 방법

  1. 루프를 한 번만 돈다.
  2. 조건을 만족하는 숫자를 찾을 때 map을 이용한다.

코드

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
var twoSum = function(nums, target) {
    let result = [];
    let map = new Map();
    for (let i=0; i<nums.length; i++){
        let num = target - nums[i];
        let numIdx = map.get(num);
        if(numIdx !== undefined){
            result = [i, numIdx];
            break;
        }
        map.set(nums[i], i);
    }  
    return result;
};

결과

Runtime: 80 ms, faster than 75.52% of JavaScript online submissions for Two Sum.

Memory Usage: 41.3 MB, less than 9.81% of JavaScript online submissions for Two Sum.

복기

  1. O(n)으로 풀기 위해서는 탐색 시 hash를 이용하는 경우가 많다는 점을 기억해야 한다.