Skip to content

Commit 1a83e1d

Browse files
authored
Merge pull request #759 from Yjason-K/main
[gomgom22] Week 2
2 parents bac89c9 + 4e9b853 commit 1a83e1d

File tree

2 files changed

+66
-0
lines changed

2 files changed

+66
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/**
2+
* @description
3+
* ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Dynamic Programming, DP)์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„๋‹จ์„ ์˜ค๋ฅด๋Š” ๋ฐฉ๋ฒ• ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
4+
* - ์ ํ™”์‹: dp[i] = dp[i-1] + dp[i-2]
5+
* - dp[i-1]: ์ด์ „ ๊ณ„๋‹จ์—์„œ 1๋‹จ๊ณ„ ์˜ฌ๋ผ์˜จ ๊ฒฝ์šฐ
6+
* - dp[i-2]: ๋‘ ๊ณ„๋‹จ ์•„๋ž˜์—์„œ 2๋‹จ๊ณ„ ์˜ฌ๋ผ์˜จ ๊ฒฝ์šฐ
7+
* - ๊ณต๊ฐ„ ์ตœ์ ํ™”๋ฅผ ํ†ตํ•ด ๋ฐฐ์—ด ๋Œ€์‹  ๋‘ ๋ณ€์ˆ˜(prev1, prev2)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ž…๋‹ˆ๋‹ค.
8+
* @param {number}n step ์ˆ˜
9+
* @returns {number} ๊ณ„๋‹จ ๋„๋‹ฌ ๋ฐฉ๋ฒ• ์ˆ˜
10+
*/
11+
function climbStairs(n: number): number {
12+
if (n <=2) return n;
13+
14+
let prev2 = 1; // dp[i-2]
15+
let prev1 = 2; // dp[i-1]
16+
17+
for (let i = 3; i <= n; i++) {
18+
const cur = prev1 + prev2; // dp[i] ๊ณ„์‚ฐ
19+
prev2 = prev1; // dp[i-2] ๊ฐฑ์‹ 
20+
prev1 = cur; // dp[i-1] ๊ฐฑ์‹ 
21+
}
22+
23+
return prev1; // dp[n] ๋ฐ˜ํ™˜
24+
};
25+

โ€Žvalid-anagram/Yjason-K.tsโ€Ž

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/**
2+
* ๋‘ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•ด์„œ Anagram ์—ฌ๋ถ€ ํ™•์ธ
3+
* - ์‹œ๊ฐ„ ๋ณต์žก๋„: O(n)
4+
* - ๋ฌธ์ž์—ด ์ˆœํšŒ์™€ ๋น„๊ต ๊ณผ์ •์„ ํฌํ•จํ•˜์—ฌ n์€ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด
5+
* - ๊ณต๊ฐ„ ๋ณต์žก๋„: 0(1)
6+
* - ์•ŒํŒŒ๋ฒณ ๊ฐœ์ˆ˜๊ฐ€ 26๊ฐœ๋กœ ๊ณ ์ • ์ƒ์ˆ˜ ๊ณต๊ฐ„
7+
* @param {string} s - ๋ฌธ์ž์—ด s
8+
* @param {string} t - ๋ฌธ์ž์—ด t
9+
* @returns {boolean} - Anagram ์—ฌ๋ถ€
10+
*/
11+
function isAnagram(s: string, t: string): boolean {
12+
// ๋‘ ๋ฌธ์—ด์˜ ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅธ๊ฒฝ์šฐ false ๋ฐ˜ํ™˜
13+
if (s.length !== t.length) {
14+
return false;
15+
}
16+
17+
// ๋ฌธ์ž์—ด ์•ŒํŒŒ๋ฒณ ์‚ฌ์ „์„ ์œ„ํ•œ ๊ฐ์ฒด ์„ ์–ธ
18+
let vocabS = {};
19+
let vocabT = {};
20+
21+
// s ๋ฌธ์ž์—ด์— ๋Œ€ํ•œ ์•ŒํŒŒ๋ฒณ ์‚ฌ์ „ ์ƒ์„ฑ
22+
for (const char in s) {
23+
vocabS = vocabS[char] ? vocabS[char] + 1 : 1;
24+
};
25+
26+
// t ๋ฌธ์ž์—ด์— ๋Œ€ํ•œ ์•ŒํŒŒ๋ฒณ ์‚ฌ์ „ ์ƒ์„ฑ
27+
for (const char in t) {
28+
vocabT = vocabT[char] ? vocabT[char] + 1 : 1;
29+
}
30+
31+
32+
// ๋‘ ๋ฌธ์ž์—ด ์‚ฌ์ „์„ ๋น„๊ตํ•˜๋ฉฐ count ๊ฐ€ ์ผ์น˜ ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ false ๋ฐ˜ํ™˜
33+
for (const char in vocabS) {
34+
if (vocabS[char] !== vocabT[char]) {
35+
return false;
36+
}
37+
}
38+
39+
return true;
40+
};
41+

0 commit comments

Comments
ย (0)