https://school.programmers.co.kr/learn/courses/30/lessons/12971
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
ํ๋ก๊ทธ๋๋จธ์ค ๋ ๋ฒจ 3.
๋์น๊ธฐ ์ฌ์ด ๋ถ๋ถ์ ๋ค์ ์๊ธฐ์์ผ์ฃผ๋ ๋ฌธ์
์ ๋ฐ์ ์ธ ๊ณผ์ ์ Dynamic Programming์ผ๋ก ํด๊ฒฐ์ด ๊ฐ๋ฅํ๋ค.
1. DP - ์ ์ถ ์ 85.9์
์ ํ์ฑ 1๊ฐ(ํ ์คํธ 33๋ฒ), ํจ์จ์ฑ 1๊ฐ(1๋ฒ) ํ๋ฆผ
์ด์ ๋ ..
N์ด 1์ธ ๊ฒฝ์ฐ๋ฅผ ์์ธ์ฒ๋ฆฌํด์ค์ผ ํ๋ค.
ํํ ๊ฒฝ๊ณ๊ฐ ํ ์คํธ ์ ํด๋ณด์
๊ธธ์ด๊ฐ 1์ผ ๋๋ ๋ฐ๋ก ๋ฆฌํดํ๋๋ก ํด์คฌ๋๋, 100์ ํต๊ณผ!
2. ์ ์ถ ์ 100์ ๐
๋์ ํ์ด
function solution(sticker) {
var answer = 0;
// n์ด 1์ผ๋ ์์ธ์ฒ๋ฆฌ
if(sticker.length == 1) return sticker[0];
// dp? ํด๋น ์คํฐ์ปค๋ฅผ ๋ฏ์์ ๋ max๊ฐ
let dp1 = [];
let dp2 = [];
sticker.map((x)=>{
dp1.push(x);
dp2.push(x);
})
// ์ฒซ๋ฒ์งธ ์คํฐ์ปค๋ฅผ ๋ฏ์์ ๋
dp1[sticker.length-1] = 0;
dp1[1] = Math.max(dp1[0],dp1[1]);
for(let i=2; i<sticker.length; ++i){
dp1[i] = Math.max(dp1[i-1], dp1[i]+dp1[i-2]);
}
// ๋ง์ง๋ง ์คํฐ์ปค๋ฅผ ๋ฏ์์ ๋
dp2[0] = 0;
for(let i=2; i<sticker.length; ++i){
dp2[i] = Math.max(dp2[i-1], dp2[i]+dp2[i-2]);
}
answer = Math.max(Math.max(...dp1),Math.max(...dp2));
return answer;
}
์ฒซ๋ฒ์งธ ์คํฐ์ปค์ ๋ง์ง๋ง ์คํฐ์ปค๊ฐ ์ด์ด์ ธ ์๊ธฐ ๋๋ฌธ์, ๊ฐ ๊ฒฝ์ฐ๋ฅผ ๋๋ ์ max๋ฅผ ๊ตฌํด์ฃผ๋ฉด ๋๋ค.
๊ฒฝ๊ณ๊ฐ ํ ์คํธ์ ์ค์์ฑ....!
'๐ ์๊ณ ๋ฆฌ์ฆ > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[MySQL/PGS] Lv.4 : 5์ ์ํ๋ค์ ์ด๋งค์ถ ์กฐํํ๊ธฐ (0) | 2025.03.03 |
---|---|
[Javascript/PGS] Lv.2 : ๋ฐฉ๋ฌธ ๊ธธ์ด (Set) (0) | 2025.03.03 |
[Javascript/PGS] Lv.3 : ๋ฑ๋ - js ๋ฐํ์์๋ฌ ํด๊ฒฐ๋ฒ (0) | 2025.02.26 |
[Javascript/PGS] Lv.2 : ์คํฌํธ๋ฆฌ (0) | 2025.02.26 |
[Javascript/PGS] Lv.2 : ํผ๋ณด๋์น ์ (1) | 2025.02.19 |