Skip to content

Commit 1c502dd

Browse files
authored
Merge pull request #394 from seona926/main
[Sophia] Week3 Solutions
2 parents 45e2f8b + 8f9850a commit 1c502dd

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

climbing-stairs/seona926.js

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/**
2+
* @param {number} n
3+
* @return {number}
4+
*/
5+
let climbStairs = function (n) {
6+
if (n <= 1) return 1;
7+
8+
let ways = new Array(n + 1);
9+
ways[0] = 1;
10+
ways[1] = 1;
11+
12+
for (let i = 2; i <= n; i++) {
13+
ways[i] = ways[i - 1] + ways[i - 2]; // 점화식 사용
14+
}
15+
16+
return ways[n];
17+
};
18+
19+
/*
20+
1. 시간 복잡도: O(n)
21+
- for 루프의 시간 복잡도
22+
2. 공간 복잡도: O(n)
23+
- 배열 ways의 공간 복잡도
24+
*/

two-sum/seona926.js

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/**
2+
* @param {number[]} nums
3+
* @param {number} target
4+
* @return {number[]}
5+
*/
6+
let twoSum = function (nums, target) {
7+
let indices = {};
8+
9+
nums.forEach((item, index) => {
10+
indices[item] = index;
11+
});
12+
13+
for (let i = 0; i < nums.length; i++) {
14+
let findNum = target - nums[i];
15+
16+
if (indices[findNum] !== i && findNum.toString() in indices) {
17+
return [indices[findNum], i];
18+
}
19+
}
20+
};
21+
22+
/*
23+
1. 시간복잡도: O(n)
24+
- forEach와 for루프의 시간복잡도가 각 O(n)
25+
2. 공간복잡도: O(n)
26+
- indices 객체의 공간복잡도가 O(n), 나머지는 O(1)
27+
*/

0 commit comments

Comments
 (0)