Skip to content

Commit 7da83b7

Browse files
authored
Merge pull request #2699 from seueooo/main
[seueooo] WEEK 02 solutions
2 parents a6b64aa + 087088e commit 7da83b7

3 files changed

Lines changed: 76 additions & 0 deletions

File tree

โ€Žclimbing-stairs/seueooo.jsโ€Ž

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/**
2+
* @param {number} n
3+
* @return {number}
4+
*
5+
* ํ’€์ด
6+
* 1. dp๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๊ณ„๋‹จ๊นŒ์ง€ ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
7+
* 2. dp[i]๋Š” i๋ฒˆ์งธ ๊ณ„๋‹จ๊นŒ์ง€ ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
8+
* 3. dp[i] = dp[i - 1] + dp[i - 2] : ๋งˆ์ง€๋ง‰์— ํ•œ ๋ฒˆ์— 1๊ณ„๋‹จ์„ ์˜ฌ๋ผ์˜จ ๊ฒฝ์šฐ์™€ 2๊ณ„๋‹จ์„ ์˜ฌ๋ผ์˜จ ๊ฒฝ์šฐ๋ฅผ ํ•ฉ์นœ๋‹ค.
9+
* ์‹œ๊ฐ„ ๋ณต์žก๋„ - O(n) : ๋ฐฐ์—ด์„ ํ•œ ๋ฒˆ ์ˆœํšŒ
10+
* ๊ณต๊ฐ„ ๋ณต์žก๋„ - O(n) : dp ๋ฐฐ์—ด ์ƒ์„ฑ
11+
*/
12+
var climbStairs = function (n) {
13+
let dp = [];
14+
dp[0] = 0;
15+
dp[1] = 1;
16+
dp[2] = 2;
17+
18+
for (let i = 3; i <= n; i++) {
19+
dp[i] = dp[i - 1] + dp[i - 2];
20+
}
21+
22+
return dp[n];
23+
};
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* ํ’€์ด
3+
* 1. prefix๋Š” ํ˜„์žฌ ์ธ๋ฑ์Šค๊นŒ์ง€์˜ ๊ณฑ์„ ์ €์žฅํ•˜๊ณ , suffix๋Š” ํ˜„์žฌ ์ธ๋ฑ์Šค ์ดํ›„์˜ ๊ณฑ์„ ์ €์žฅํ•œ๋‹ค.
4+
* 2. ์ฒซ ๋ฒˆ์งธ ๋ฐ˜๋ณต๋ฌธ์—์„œ prefix๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , ๋‘ ๋ฒˆ์งธ ๋ฐ˜๋ณต๋ฌธ์—์„œ suffix๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ answer ๋ฐฐ์—ด์— ๊ณฑํ•œ๋‹ค.
5+
* ์‹œ๊ฐ„ ๋ณต์žก๋„ - O(n) : ๋ฐฐ์—ด์„ ๋‘ ๋ฒˆ ์ˆœํšŒ
6+
* ๊ณต๊ฐ„ ๋ณต์žก๋„ - O(1) : answer ๋ฐฐ์—ด
7+
*
8+
* @param {number[]} nums
9+
* @return {number[]}
10+
*/
11+
var productExceptSelf = function (nums) {
12+
let prefix = 1;
13+
let suffix = 1;
14+
const n = nums.length;
15+
let answer = new Array(n).fill(1);
16+
17+
// ์ˆœ๋ฐฉํ–ฅ
18+
for (let i = 0; i < n; i++) {
19+
answer[i] = prefix;
20+
prefix *= nums[i];
21+
}
22+
23+
// ์—ญ๋ฐฉํ–ฅ
24+
for (let i = n - 1; i >= 0; i--) {
25+
answer[i] *= suffix;
26+
suffix *= nums[i];
27+
}
28+
return answer;
29+
};

โ€Žvalid-anagram/seueooo.jsโ€Ž

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/**
2+
* ํ’€์ด
3+
* 1. ๋‘ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅด๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
4+
* 2. ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ ๊ฐ ๋ฌธ์ž์˜ ๋“ฑ์žฅ ํšŸ์ˆ˜๋ฅผ count ๊ฐ์ฒด์— ์ €์žฅํ•œ๋‹ค.
5+
* 3. ๋‘ ๋ฒˆ์งธ ๋ฌธ์ž์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ count ๊ฐ์ฒด์—์„œ ํ•ด๋‹น ๋ฌธ์ž์˜ ๋“ฑ์žฅ ํšŸ์ˆ˜๋ฅผ ๊ฐ์†Œ์‹œํ‚จ๋‹ค.
6+
* 4. ๋งŒ์•ฝ count ๊ฐ์ฒด์— ํ•ด๋‹น ๋ฌธ์ž๊ฐ€ ์—†๊ฑฐ๋‚˜ ๋“ฑ์žฅ ํšŸ์ˆ˜๊ฐ€ 0์ด๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
7+
* 5. ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ์ˆœํšŒํ•œ ํ›„์—๋„ false๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
8+
* ์‹œ๊ฐ„ ๋ณต์žก๋„ - O(n) : ๋‘ ๋ฌธ์ž์—ด์„ ํ•œ ๋ฒˆ์”ฉ ์ˆœํšŒ
9+
* ๊ณต๊ฐ„ ๋ณต์žก๋„ - O(1) : count ๊ฐ์ฒด๋Š” ์ตœ๋Œ€ 26๊ฐœ์˜ ์•ŒํŒŒ๋ฒณ๋งŒ ์ €์žฅ
10+
*/
11+
var isAnagram = function (s, t) {
12+
let count = {};
13+
if (s.length !== t.length) {
14+
return false;
15+
}
16+
for (const i of s) {
17+
count[i] = count[i] ? count[i] + 1 : 1;
18+
}
19+
for (const i of t) {
20+
if (!count[i]) return false;
21+
count[i]--;
22+
}
23+
return true;
24+
};

0 commit comments

Comments
ย (0)