카테고리
DP (동적계획법)
나만의 카테고리
간단한 DP
문제 링크
programmers.co.kr/learn/courses/30/lessons/42897?language=java
요점
- 3번째 부터 뽑는 경우의 수를 생각해야한다
참고 지식
- Math.max()
풀이 (Java)
import java.util.*;
class Solution {
public int solution(int[] money) {
int answer = 0;
int[] firstDp = new int[1000000];
int[] secondDp = new int[1000000];
firstDp[0] = money[0];
firstDp[1] = money[0];
int moneyLength = money.length;
for (int index = 2; index < moneyLength - 1; index++) {
firstDp[index] = Math.max(firstDp[index-2] + money[index], firstDp[index-1]);
}
secondDp[0] = 0;
secondDp[1] = money[1];
for (int index = 2; index < moneyLength; index++) {
secondDp[index] = Math.max(secondDp[index-2] + money[index], secondDp[index-1]);
}
answer = Math.max(firstDp[moneyLength - 2], secondDp[moneyLength - 1]);
return answer;
}
}
알고리즘 초보가 정리한 글입니다
더 좋은 방법이나 코드에 대한 코멘트 언제나 환영합니다!
반응형
'Algorithm > Algorithm Test' 카테고리의 다른 글
[프로그래머스] 3진법 뒤집기(Java) (0) | 2021.03.28 |
---|---|
[프로그래머스] 두 개 뽑아서 더하기(C++, Java) (0) | 2021.03.12 |
[프로그래머스 SQL] 있었는데요 없었습니다 (0) | 2021.02.24 |
[프로그래머스 SQL] 없어진 기록 찾기 (0) | 2021.02.23 |
[프로그래머스] 주식가격 (C++) (0) | 2020.12.26 |