티스토리 뷰
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/43105
코딩테스트 연습 - 정수 삼각형
[[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30
programmers.co.kr
2. 설명
아래로 합을 계산해 나가는 방식으로 풀었다.
2가지로 나뉘는데
이 경우에는 어차피 한가지 경우의 수들 밖에 없어서 j==0일 때랑 j==i일 때로 나눠서 구했고
나머지는 합이 더 큰 부분으로 내려가도록 구했다.
↑나머지 부분들
그러면 결과가
7
10 15
18 16 15
20 25 20 19
24 30 27 26 24
이렇게 나오고, 마지막 배열에서 최댓값을 구해서 답을 구했다.
3. 코드
import java.util.*;
class Solution {
public int solution(int[][] triangle) {
int answer = 0;
int height = triangle.length;
for(int i=1; i<height; i++) {
for(int j=0; j<=i; j++) {
if(j==0) {
triangle[i][j] += triangle[i-1][j];
} else if(j==i) {
triangle[i][j] += triangle[i-1][j-1];
} else {
triangle[i][j] += max(triangle[i-1][j-1],triangle[i-1][j]);
}
}
}
// 최댓값
for(int i=0; i<height; i++) {
answer = max(answer,triangle[height-1][i]);
}
return answer;
}
private int max(int a, int b) {
return a > b ? a : b;
}
}
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 다리를 지나는 트럭 JAVA (0) | 2020.06.24 |
---|---|
프로그래머스 짝지어 제거하기 JAVA (0) | 2020.06.18 |
프로그래머스 타일 장식물 JAVA (피보나치수열, DP) (0) | 2020.06.16 |
프로그래머스 종이접기 JAVA (0) | 2020.06.15 |
프로그래머스 [3차] 파일명 정렬 JAVA (0) | 2020.06.10 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday