Skip to content

Commit cbd7d6e

Browse files
committed
contains-duplicate, two-sum 설명 추가
1 parent bfd3322 commit cbd7d6e

File tree

2 files changed

+33
-18
lines changed

2 files changed

+33
-18
lines changed

contains-duplicate/JANGSEYEONG.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
1-
// 시간복잡도: O(n) - Set 생성 시 모든 요소를 한 번씩 처리하기 때문
2-
// - new Set(nums)는 배열의 모든 요소를 순회하며 Set에 추가: O(n)
3-
// - 길이 비교 자체는 O(1)이므로 전체 시간복잡도는 O(n)
1+
/*
2+
시간복잡도: O(n) - new Set(nums)에서 배열 요소 순회하며 Set 생성 O(n) + 길이 비교 O(1)
3+
- Set 자료구조는 중복된 값을 자동으로 제거
4+
*/
5+
6+
/**
7+
* @param {number[]} nums
8+
* @return {boolean}
9+
*/
410
var containsDuplicate = function (nums) {
511
// Set으로 만들었을 때, 기존 배열과 사이즈가 다르면 중복이 제거된거임
612
const numsSet = new Set(nums);

two-sum/JANGSEYEONG.js

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,29 @@
1-
// 시간복잡도 O(n²)
2-
// - nums.indexOf()는 배열 전체를 순회하는 O(n) 작업
3-
// - 이 작업이 for 루프(O(n)) 내부에서 실행되므로 전체 시간복잡도는 O(n) * O(n) = O(n²)
4-
/*var twoSum = function (nums, target) {
5-
for (let i = 0; i < nums.length; i++) {
6-
let x = nums.indexOf(target - nums[i]);
7-
if (x > -1 && x !== i) {
8-
return [i, x];
1+
/*
2+
시간복잡도: O(n²)
3+
- nums.indexOf()는 배열 전체를 순회하는 O(n) 작업
4+
- 이 작업이 for 루프(O(n)) 내부에서 실행되므로 전체 시간복잡도는 O(n) * O(n) = O(n²)
5+
6+
var twoSum = function (nums, target) {
7+
for (let i = 0; i < nums.length; i++) {
8+
let x = nums.indexOf(target - nums[i]);
9+
if (x > -1 && x !== i) {
10+
return [i, x];
11+
}
912
}
10-
}
11-
return [];
12-
};*/
13+
return [];
14+
};
15+
16+
*/
1317

14-
// 시간복잡도 O(n)
15-
// 전체 배열을 한 번만 순회 O(n) + 키-값 쌍 저장에 O(1)
16-
// Map 대신 객체(Object)를 사용해도 될듯 함
17-
// => 일반 객체는 {}, 접근은 obj[key]로 가능, has() 대신 (key in obj) 또는 obj[key] !== undefined 사용 가능
18+
/*
19+
시간복잡도: O(n) - 전체 배열을 한 번만 순회 O(n) + 키-값 쌍 저장에 O(1)
20+
- Map 대신 객체(Object)를 사용해도 될듯 함
21+
- 일반 객체는 {}, 접근은 obj[key]로 가능, has() 대신 (key in obj) 또는 obj[key] !== undefined 또는 key in obj 사용 가능 */
22+
/**
23+
* @param {number[]} nums
24+
* @param {number} target
25+
* @return {number[]}
26+
*/
1827
var twoSum = function (nums, target) {
1928
let minus = new Map();
2029
for (let i = 0; i < nums.length; i++) {

0 commit comments

Comments
 (0)