Skip to content

Commit 41a2c03

Browse files
authored
Merge pull request #826 from HerrineKim/main
[HerrineKim] Week 4
2 parents 4583f0e + e051a94 commit 41a2c03

File tree

3 files changed

+63
-0
lines changed

3 files changed

+63
-0
lines changed

coin-change/HerrineKim.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// 시간 복잡도: O(n * m)
2+
// 공간 복잡도: O(n)
3+
4+
/**
5+
* @param {number[]} coins
6+
* @param {number} amount
7+
* @return {number}
8+
*/
9+
var coinChange = function(coins, amount) {
10+
const dp = new Array(amount + 1).fill(Infinity);
11+
dp[0] = 0;
12+
13+
for (let coin of coins) {
14+
for (let i = coin; i <= amount; i++) {
15+
dp[i] = Math.min(dp[i], dp[i - coin] + 1);
16+
}
17+
}
18+
19+
return dp[amount] === Infinity ? -1 : dp[amount];
20+
};
21+

missing-number/HerrineKim.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// 시간 복잡도: O(n)
2+
// 공간 복잡도: O(1)
3+
4+
/**
5+
* @param {number[]} nums
6+
* @return {number}
7+
*/
8+
var missingNumber = function(nums) {
9+
const n = nums.length;
10+
// 0부터 n까지의 합 공식: n * (n + 1) / 2
11+
const expectedSum = (n * (n + 1)) / 2;
12+
// 실제 배열의 합
13+
const actualSum = nums.reduce((sum, num) => sum + num, 0);
14+
15+
return expectedSum - actualSum;
16+
};
17+
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// 시간 복잡도: O(n^2)
2+
// 공간 복잡도: O(1)
3+
4+
/**
5+
* @param {string} s
6+
* @return {number}
7+
*/
8+
var countSubstrings = function(s) {
9+
let count = 0;
10+
11+
const countPalindrome = (left, right) => {
12+
while (left >= 0 && right < s.length && s[left] === s[right]) {
13+
count++;
14+
left--;
15+
right++;
16+
}
17+
};
18+
19+
for (let i = 0; i < s.length; i++) {
20+
countPalindrome(i, i);
21+
countPalindrome(i, i + 1);
22+
}
23+
24+
return count;
25+
};

0 commit comments

Comments
 (0)