๋ฌธ์
- ์ผ๊ฐํ ๊ผญ๋๊ธฐ์์๋ถํฐ ๋ฐ๋ฅ๊น์ง ์ด๋ํ ๋, ์ซ์์ ํฉ์ด ๊ฐ์ฅ ํฐ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์๋ผ.
- ์๋์นธ์ผ๋ก ์ด๋ํ ๋๋ ๋๊ฐ์ ๋ฐฉํฅ์ผ๋ก ์ผ์ชฝ ํ ์นธ ๋๋ ์ค๋ฅธ์ชฝ ํ ์นธ์ผ๋ก๋ง ์ด๋์ด ๊ฐ๋ฅํ๋ค.
์ ํ์ฌํญ
- 1 <= ์ผ๊ฐํ์ ๋์ด <= 500
- 0 <= ์ผ๊ฐํ์ ์ด๋ฃจ๊ณ ์๋ ์ซ์ <= 9999
๋ฌธ์ ํ์ด
- ์ด ๋ฌธ์ ์ ๊ฐ์ฅ ์์ ํ์ ๋ฌธ์ ๋ ๋ค์ ์นธ์ ๋ ์ ์ค ๋ ํฐ ์๋ฅผ ์ฐพ๋ ๊ฒ์ด๋ค.
- ๋งจ ์๋ ์นธ๋ถํฐ ์ผ์ชฝ ์ค๋ฅธ์ชฝ ์ค ํฐ ์๋ฅผ ์์นธ์ ์ซ์์ ๋ํด์ค๋ค. ์ฐจ๋ก์ฐจ๋ก ๋ํด์ฃผ๋ฉฐ ๋งจ ์์ชฝ์ ์๋ ํ์ ๋ฌธ์ ๊น์ง ํด๊ฒฐํ๋ค.
- ์ฒซ๋ฒ์งธ ์นธ์ ์๋ ์ซ์๋ฅผ ๋ฐํํ๋ค.
์์นธ์ ์ซ์ ์ค ํฐ ์๋ฅผ ์๋ซ์นธ์ ์ซ์์ ๊ฐ์ฐํด ์ฃผ๋ ํ ๋ค์ด์ผ๋ก๋ ํ ์๋ ์์ง๋ง, ์์นธ์ ์ซ์๋ ์๋์นธ๋ณด๋ค ํญ์ 1๊ฐ ์ ๊ธฐ ๋๋ฌธ์ ๋งจ ๋์ ์๋ ์ซ์์ ๋ํด ์์ธ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ์ด์ผํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋ค์ดํ์ผ๋ก ํ์ด๊ฐ๋ ๊ฒ์ด ๋ ์์ฐ์ค๋ฝ๊ณ ์ฝ๋๋ ๋ ๊ฐ๊ฒฐํ๊ฒ ์งค ์ ์๋ค.
function solution(triangle) {
for (let i = triangle.length - 2; 0 <= i; i--) {
for (let j = 0; j < triangle[i].length; j++) {
triangle[i][j] += Math.max(triangle[i+1][j], triangle[i+1][j+1])
}
}
return triangle[0][0]
}
์๊ฐ๋ณต์ก๋: O(N^2), N์ด 500 ์ดํ๋ก ์ ํ๋์ด ์์ผ๋ฏ๋ก O(1)
๊ณต๊ฐ๋ณต์ก๋: O(1)