๐ฅ๋ฌธ์ ๋งํฌ
https://school.programmers.co.kr/learn/courses/30/lessons/43105
๐ฅํ์ด
ํ๋ก๊ทธ๋๋จธ์ค ํํ์ด์ง ์ฝ๋ฉํ ์คํธ ๋ฌธ์ ๋ชฉ๋ก ์์ ๋ณด๋ฉด AI ๊ฐ ๋๋ฅผ ๋ถ์ํด ์ถ์ฒํด์ฃผ๋ ๋ฌธ์ ๊ฐ ์์ด์ ๊ทธ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด์๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์นดํ ๊ณ ๋ฆฌ๋ ๋์ ๊ณํ๋ฒ์ผ๋ก ๋ถ๋ฅ ๋์ด ์์๋๋ฐ ์ ํํ ๋์ ๊ณํ๋ฒ์ด ๋ญ์ง ๊ถ๊ธํด์ ์ฐพ์๋ณด๋ ...
์ด๋ ๋ค๊ณ ํ๋ค. ๊ณ์ฐํ ์ต์ ํ๋ผ๊ณ ์๊ฐํ๋ฉด ๋ ๊ฒ๊ฐ๊ณ dynamic programming (DP) ์ด๋ผ๊ณ ํ๋ค
์ ์ด์ ์ง์ง ํ์ด์ด๋ค.
function solution(triangle) {
let sum_arr = []
triangle.forEach((arr)=>{
if(sum_arr.length===0){
sum_arr=arr
}else{
let temp = []
for(let i=0; i<=arr.length-1; ++i){
if(sum_arr[i-1]&&sum_arr[i]){
let max = Math.max(sum_arr[i-1],sum_arr[i])
temp.push(max+arr[i])
}else if(i===arr.length-1){
temp.push(arr[i]+sum_arr[i-1])
}else{
temp.push(arr[i]+sum_arr[i])
}
}
sum_arr=temp
}
})
return Math.max(...sum_arr);
}
ํต์ฌ์ ์ง๋์จ ์๋ค์ ํฉ ์ค ์ต๋๋ฅผ ๊ตฌํ๋ค๋ ๊ฒ๊ณผ if(sum_arr[i-1]&&sum_arr[i]) <- ์ด ์กฐ๊ฑด์ ์ธ์งํ๋ ๊ฒ์ด๋ค.
์๋ฅผ๋ค์ด [ [1], [2,3] , [5,6,7] ] ์ด๋ผ๋ ์ผ๊ฐํ์ด ์ฃผ์ด ์ก์๋ 6๋ง์ง๋ง 6์ผ๋ก ์ค๋๋ฐฉ๋ฒ์ 1->2->6 ๊ณผ 1->3->6 ์ด ์๋ค. ์ฌ๊ธฐ์ 1->3->6 ์ผ๋ก ์ค๋ ๋ฐฉ๋ฒ์ ํฉ์ด ๋ ํฌ๋ฏ๋ก 1->2->6์ ๋ฌด์ํด๋ ๋๋ ๊ฒ์ด๋ค. ์ด๋ฐ์์ผ๋ก ์ผ๊ฐํ์ ๊ฐ์ค์ ์ฒซ๋ฒ์งธ์ ๋ง์ง๋ง ํ์ ์ ์ธํ๊ณ ๋ ์ต๋๊ฐ๋ง์ ์์๊ฐ๋ฉฐ ๋ง์ง๋ง ์ผ๊ฐํ ๋ผ์ธ๊น์ง ์ค๋ฉด ํฉ์ฐ๊ฐ๋ค์ ๋ชฉ๋ก์ ๊ตฌํ ์ ์๊ณ ์ด ์ค ์ต๋๊ฐ์ return ํ๋ฉด ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ํ ์ ์๋ค.
'๐Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค[JS] > ์์ ์ต๋ํ (0) | 2024.08.10 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค[JS] > [3์ฐจ] n์ง์ ๊ฒ์ (0) | 2024.08.05 |
ํ๋ก๊ทธ๋๋จธ์ค[JS] > ๊ฒน์น๋ ์ ๋ถ์ ๊ธธ์ด (0) | 2024.07.20 |
ํ๋ก๊ทธ๋๋จธ์ค[JS] > ์ฟผ๋์์ถ ํ ๊ฐ์ ์ธ๊ธฐ (0) | 2024.07.15 |
ํ๋ก๊ทธ๋๋จธ์ค[JS] > ๋คํธ์ํฌ (0) | 2024.07.13 |