-
프로그래머스 - 정수 삼각형 [Java]알고리즘 문제 풀이 2021. 2. 12. 00:15
/* * 2021-02-12 * https://programmers.co.kr/learn/courses/30/lessons/43105?language=java */ package study.programmers.dynamic_programming; import java.util.ArrayList; import java.util.Comparator; public class IntegerTriangle { public int solution(int[][] triangle) { ArrayList<Integer> prevList = new ArrayList(); ArrayList<Integer> sumList = new ArrayList(); prevList.add(0); for (int[] row : triangle) { int i = 0; for (int num : row) { // 행의 처음 수 if (i == 0) { sumList.add(prevList.get(i) + num); } else if (i == row.length - 1) { sumList.add(prevList.get(i - 1) + num); } else { int num1 = prevList.get(i - 1); int num2 = prevList.get(i); sumList.add(Math.max(num1, num2) + num); } i++; } prevList.clear(); prevList.addAll(sumList); sumList.clear(); } prevList.sort(Comparator.naturalOrder()); return prevList.get(prevList.size() - 1); } }
N 으로 표현이랑 같은 3레벨 문제인게 의문이 들정도로 금방 풀었다.
계산한 값을 ArrayList 에 저장하게 작성했는 데
풀고 다른 분의 풀이를 보니 주어진 배열을 활용해서 값을 저장해도 되겠다는 것을 다시 생각하게 되었다.반응형'알고리즘 문제 풀이' 카테고리의 다른 글
프로그래머스 - 도둑질 [자바] (0) 2021.02.14 프로그래머스 - 등굣길 [자바] (0) 2021.02.12 프로그래머스 - N 으로 표현 [코틀린] (0) 2021.02.07 프로그래머스 - 여행 경로 (0) 2021.01.17 프로그래머스 - 단어 변환 (0) 2021.01.02