https://programmers.co.kr/learn/courses/30/lessons/43105?language=java
๋ฌธ์
์์ ๊ฐ์ ์ผ๊ฐํ์ ๊ผญ๋๊ธฐ์์ ๋ฐ๋ฅ๊น์ง ์ด์ด์ง๋ ๊ฒฝ๋ก ์ค, ๊ฑฐ์ณ๊ฐ ์ซ์์ ํฉ์ด ๊ฐ์ฅ ํฐ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์๋ณด๋ ค๊ณ ํฉ๋๋ค. ์๋ ์นธ์ผ๋ก ์ด๋ํ ๋๋ ๋๊ฐ์ ๋ฐฉํฅ์ผ๋ก ํ ์นธ ์ค๋ฅธ์ชฝ ๋๋ ์ผ์ชฝ์ผ๋ก๋ง ์ด๋ ๊ฐ๋ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด 3์์๋ ๊ทธ ์๋์นธ์ 8 ๋๋ 1๋ก๋ง ์ด๋์ด ๊ฐ๋ฅํฉ๋๋ค.
์ผ๊ฐํ์ ์ ๋ณด๊ฐ ๋ด๊ธด ๋ฐฐ์ด triangle์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๊ฑฐ์ณ๊ฐ ์ซ์์ ์ต๋๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ์ฌํญ
- ์ผ๊ฐํ์ ๋์ด๋ 1 ์ด์ 500 ์ดํ์ ๋๋ค.
- ์ผ๊ฐํ์ ์ด๋ฃจ๊ณ ์๋ ์ซ์๋ 0 ์ด์ 9,999 ์ดํ์ ์ ์์ ๋๋ค.
ํ์ด
๋งจ ๋ฐ์ค์์ ๋ ๋ฒ์งธ ์ค ๋ถํฐ ์์ํ๋ค.
triangle[ i ][ j ] ๋ triangle[ i+1 ][ j ] ๋๋ triangle[ i+1 ][ j+1 ] ๋ก ๋ง ๊ฐ ์์๋ค. [0][0] ๋ถํฐ ์ต๋๊ฐ์ผ๋ก ๋ง์ง๋ง ์ค์ ๋์ฐฉํด์ผ ํ๋ค.
๊ทธ๋์ ๋ ๊ฐ ์ค ๋ ํฐ ๊ฐ์ triangle[ i ][ j ] ์ ๋ํด์ฃผ๋ ๊ฒ์ [0][0] ๊น์ง ์งํํ๊ณ , triangle[0][0]์ return ํด์ฃผ๋ฉด ๋๋ค.โผ๏ธ
์ฝ๋
public class ์ ์์ผ๊ฐํ {
public static int solution(int[][] triangle) {
int lastIdx = triangle.length - 1;
for(int i = lastIdx - 1; i >= 0 ; i--){
for(int 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];
}
public static void main(String[] args) {
int[][] triangle = {{7}, {3, 8}, {8, 1, 0}, {2, 7, 4, 4} , {4, 5, 2, 6, 5}};
System.out.println(solution(triangle));
}
}
'์๊ณ ๋ฆฌ์ฆ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ ํ๋ก๊ทธ๋๋จธ์ค / Programmers Level 3 ] ๋ค๋จ๊ณ ์นซ์ ํ๋งค (0) | 2021.09.20 |
---|---|
[ ํ๋ก๊ทธ๋๋จธ์ค / Programmers Level 3 ] ์์ (0) | 2021.09.16 |
[ ํ๋ก๊ทธ๋๋จธ์ค / Programmers Level 3 ] ๋คํธ์ํฌ (0) | 2021.09.15 |
[ ํ๋ก๊ทธ๋๋จธ์ค / Programmers Level 3 ] ๋์คํฌ ์ปจํธ๋กค๋ฌ (0) | 2021.09.15 |
[ ํ๋ก๊ทธ๋๋จธ์ค / Programmers Level 3 ] ๋ฆฌํ ํ๋ ์ฆ ์ฌ์ฒ์ฑ (0) | 2021.09.15 |