-
[프로그래머스] 동적 계획법 - 정수 삼각형알고리즘 공부/문제 풀이 2020. 8. 23. 23:33
이 문제는 지난 컴퓨터 알고리즘 수업시간에 설명을 들은 적이 있다..
그거와는 별개로 기억나지 않는 풀이법..
그래서 동적계획법을 이용하여 어떻게 해결할까를 고민하니
거꾸로 올라가자라는 생각이 떠올랐고
맨 아래줄을 제외한 아랫줄에서 부터 새로운 정수 삼각형을 만들어
그 삼각형에서 만들 수 있는 가장 큰 수를 저장하게 하였다.
static int solution(int[][] triangle) { int answer = 0; for(int i=triangle.length-2;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]; }
이 문제에서 위에서 아래로 내려가는 풀이법은 완전 탐색일 것이다.
이 경우 효율성 테스트에서 정답을 못 맞힌다..
'알고리즘 공부 > 문제 풀이' 카테고리의 다른 글
[프로그래머스] 깊이 우선 탐색 - 타겟 넘버 (1) 2020.08.25 [프로그래머스] 동적계획법 - 등굣길 (1) 2020.08.24 [프로그래머스] 동적 계획법 - N으로 표현 (1) 2020.08.23 [프로그래머스] 탐욕 알고리즘 - 단속카메라 (1) 2020.08.18 [프로그래머스] 탐욕 알고리즘 - 섬 연결하기 (1) 2020.08.18