개발 공부/알고리즘 문제 풀이
[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)
접근 방법
- 루프를 한 번만 돈다.
- 조건을 만족하는 숫자를 찾을 때 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.
복기
- O(n)으로 풀기 위해서는 탐색 시 hash를 이용하는 경우가 많다는 점을 기억해야 한다.