Skip to content

Commit c99a3cf

Browse files
feat: two-sum map 으로 풀이 추가
1 parent ae484a4 commit c99a3cf

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

two-sum/grapefruitgreentealoe.js

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,27 @@ var twoSum = function(nums, target) {
7474
* 공간복잡도: O(1)
7575
*/
7676

77-
//투포인터로 다시 풀었지만, 이 문제의 핵심은 Map의 메소드를 활용하는것.
77+
/*
78+
투포인터로 다시 풀었지만, 이 문제의 핵심은 map 메소드를 활용해서, 조회를 빠르게 하는것..
79+
Map.get(key) : O(1) 평균 해시 테이블 기반이기 때문에, 키 조회가 상수 시간
80+
Array.includes(value) : O(n) 배열 처음부터 끝까지 순차 탐색 (최악의 경우 전체 탐색)
81+
*/
82+
83+
var twoSum = function(nums, target) {
84+
//현재 nums에 대해서, subnums를 저장한다.
85+
const subNumsMap = new Map();
86+
for(let i = 0;i<nums.length;i++){
87+
const subNum = target - nums[i];
88+
if(subNumsMap.has(subNum)){
89+
return [subNumsMap.get(subNum),i]
90+
}
91+
subNumsMap.set(nums[i],i)
92+
}
93+
};
94+
//시간복잡도: O(n) , 공간복잡도 : O(n)
95+
96+
/*
97+
Q. 여기서 의문. Map이좋냐 object가 좋냐?
98+
알고리즘용 해시맵 대용이라면 대부분 Map 추천
99+
Object는 JSON-like 데이터 보관용에 적합
100+
*/

0 commit comments

Comments
 (0)