๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/43105
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก์ Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
< ์ ์ ์ผ๊ฐํ >
๋ฌธ์ ํ์ด (Java)
class Solution {
public int solution(int[][] triangle) {
int answer = 0;
int dp[][] = new int[triangle.length][triangle[triangle.length - 1].length];
dp[0][0] = triangle[0][0];
for (int i = 0; i < triangle.length - 1; i++) {
for (int j = 0; j < triangle[i].length; j++) {
dp[i + 1][j] = Math.max(triangle[i + 1][j] + dp[i][j], dp[i + 1][j]);
dp[i + 1][j + 1] = Math.max(triangle[i + 1][j + 1] + dp[i][j], dp[i + 1][j + 1]);
}
}
for (int i = 0; i < triangle[triangle.length - 1].length; i++) {
answer = Math.max(answer, dp[triangle.length - 1][i]);
}
return answer;
}
}
๊ฑฐ์ณ๊ฐ ์ซ์์ ํฉ์ ๊ตฌํ๊ธฐ ์ํด dp ๋ฐฐ์ด์ ์ ์ธํ๋ค. 0๋ฒ์งธ ํ์๋ ์๋ ๊ฐ์ ์ ์ฅํ๊ณ 0๋ฒ์งธ ํ๋ถํฐ ๋ง์ง๋ง ํ ์ ๊น์ง ํ์ํ๋ค. ์ด๋, ๋ค์ ํ์ ๊ฐ์ ์ด๊ณผ, ๋ค์ ํ์ ๋ค์ ์ด์ ํ์ฌ ๊ฐ์ ๋ํ์ ๋ ์ต๋๊ฐ์ dp์ ์ ์ฅํ๋ค.
์ต์ข ๋ง์ง๋ง ํ์ ์ดํด๋ณด๋ฉฐ ์ต๋๊ฐ์ answer์ ์ ์ฅํ ํ answer์ ๋ฐํํ๋ค.

์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉ ํ ์คํธ ์ฐ์ต,
https://school.programmers.co.kr/learn/challenges
'๐Algorithm > ๐ฅprogrammers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [programmers] ๊ฐ์ฅ ๋จผ ๋ ธ๋ (0) | 2026.07.21 |
|---|---|
| [programmers] ๋จ์ด ๋ณํ (0) | 2026.07.20 |
| [programmers] ๋คํธ์ํฌ (0) | 2026.07.15 |
| [programmers] ํ๊ฒ ๋๋ฒ (0) | 2026.07.14 |
| [programmers] ๊ฒ์ ๋งต ์ต๋จ๊ฑฐ๋ฆฌ (0) | 2026.07.13 |