문제
1. Two Sum
https://leetcode.com/problems/two-sum/
언어
자바스크립트(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를 이용하는 경우가 많다는 점을 기억해야 한다.
'개발 공부 > 알고리즘 문제 풀이' 카테고리의 다른 글
[LeetCode] 15. 3Sum (0) | 2021.06.24 |
---|---|
[LeetCode] 92. Reverse Linked List II (0) | 2021.06.24 |
[LeetCode] 12. Integer to Roman (0) | 2021.06.23 |
LeetCode 11. Container With Most Water (0) | 2021.06.23 |
[LeetCode] 8. String to Integer (atoi) (0) | 2021.06.23 |