https://school.programmers.co.kr/learn/courses/30/lessons/12929
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
ํ๋ก๊ทธ๋๋จธ์ค ๋ ๋ฒจ 4.
dp๊ธด ํ๋ฐ, ๊ฐ์ด ์ ์กํ์ ์ง๋ฌธํ๊ธฐ ๊ฒ์ํ์ ์ฐธ๊ณ ํ๋ค...ใ .ใ
๊ณฑ์ dp ๋ฌธ์ ๋ ์ฒ์์ธ๋ฏ!!!
์๋ ํ์ด์ฒ๋ผ, ๊ดํธ ํ ์์ ์ค์ฌ์ผ๋ก
()์ ์์ ๋ค์ด๊ฐ๋ ๊ดํธ ์, ๊ทธ๋ฆฌ๊ณ ๋ฐ์ ๋์ค๋ ๊ดํธ ์
๊ฒฝ์ฐ์ ์๋ฅผ ๊ณฑํ๋ฉด ๋๋ค.
์๋ฅผ ๋ค์ด์ n=3์ผ๋๋,
() / ()() -> ๊ธฐ์ค ๊ดํธ์ ์๋ฌด๊ฒ๋ ๋ค์ด๊ฐ์ง ์์. ๋ฐ๊นฅ์๋ 2๊ฐ๊ฐ ์กด์ฌํ๋ฏ๋ก dp[0] * dp[2] = 1*2
(()) / () -> ๊ธฐ์ค ๊ดํธ์ 1๊ฐ, ๋ฐ๊นฅ์ 1๊ฐ. dp[1] * dp[1] = 1*1
(()()) -> ๊ธฐ์ค ๊ดํธ์ 2์ธํธ ๋ค์ด๊ฐ๊ณ , ๋ฐ๊นฅ์๋ 0๊ฐ. dp[2] * dp[0] = 2*1
๋ฐ๋ผ์ dp[3] = 5์ด๋ค.
๋์ ํ์ด
function solution(n) {
var answer = 0;
let dp = new Array(n+1).fill(0);
dp[0] = 1;
dp[1] = 1;
dp[2] = 2;
for(let i=3; i<=n; ++i){
for(let j=0; j<i; ++j){
dp[i] += dp[i-j-1] * dp[j];
}
}
// console.log(dp);
answer = dp[n];
return answer;
}
'๐ ์๊ณ ๋ฆฌ์ฆ > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Javascript/PGS] Lv.3 : ํ๊ดด๋์ง ์์ ๊ฑด๋ฌผ (2022 KAKAO) (0) | 2025.05.09 |
---|---|
[Javascript/PGS] Lv.3 : ํ์ ํฐํธ๋ฆฌ๊ธฐ (0) | 2025.05.09 |
[Javascript/PGS] Lv.3 : ๊ฑฐ์ค๋ฆ๋ (DP) (1) | 2025.05.08 |
[Javascript/PGS] Lv.3 : ๋ค๋จ๊ณ ์นซ์ ํ๋งค (0) | 2025.05.08 |
[Javascript/PGS] Lv.3 : [1์ฐจ] ์ ํ๋ฒ์ค (2018 KAKAO) (0) | 2025.05.08 |