-
프로그래머스 정수 삼각형개발/코딩테스트 2025. 1. 5. 18:13
해석
가장 왼쪽의 경우 이전 행의 가장 왼쪽의 값을 현재의 값과 합산한것이 현재의 값이 된다
가장 오른쪽의 경우 이전 행의 가장 오른쪽의 값을 현재의 값과 합산한 것이 현재의 값이 된다.
그 외의 경우 이전 행에서의 왼쪽 열의 값과 이전 행의 오른쪽 열의 값 중 큰 값을 현재의 값과 합산한 것이 현재의 값이 된다
첫번째 행의 경우 계산의 대상이 아니니 제외한다
cf) 전제가 삼각형이므로 가장 왼쪽 혹은 가장 오른쪽의 경우 행 , 열이 -1씩 줄어든다
풀이
public int solution(int[][] triangle) { int answer =0; for(int i=1; i<triangle.length; i++){ for(int j=0; j<triangle[i].length; j++){ if(j==0){ triangle[i][j]+= triangle[i-1][j]; }else if(i==j){ triangle[i][j]+= triangle[i-1][j-1] }else{ triangle[i][j]+=Math.max(triangle[i-1][j],triangle[i-1][j-1]); } answer = Math.max(answer,triangle[i][j]); } } return answer; }
'개발 > 코딩테스트' 카테고리의 다른 글
프로그래머스 등굣길 (0) 2025.01.11 게임맵 최단거리 (1) 2024.12.29 이중우선순위큐 (0) 2024.12.26 다리를 지나는 트럭 (0) 2024.12.22 기능개발 (1) 2024.12.17