티스토리 뷰


- 조건
- 카드를 N개 구매한다.
- 인덱스의 범위가 입력받은 N을 넘어서는 안된다
- 카드백에 들어있는 카드가 작은 것부터 산다.
- 구해야 할 것
- arr에 입력받는다고 하면 arr을 더한 최대값을 구해야 한다.
- dp에 들어갈 값
- 각각의 최대값을 대입해서 넣어준다.
import java.util.Scanner;
public class Main {
static long dp[];
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int dp[] = new int[n+1];
int arr[] = new int[n+1];
for(int i = 1; i <= n; i++) {
arr[i] = sc.nextInt();
}
sc.close();
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= i; j++) {
dp[i] = Math.max(dp[i], dp[i-j]+arr[j]);
}
}
System.out.println(dp[n]);
}
}
'algorithm' 카테고리의 다른 글
| 11650 - 좌표 정렬하기 (0) | 2020.05.11 |
|---|---|
| 2751 - 수 정렬하기 2 (0) | 2020.05.11 |
| 다이나믹 프로그래밍 문제 정리 (0) | 2020.05.05 |
| [DP] 2011 (0) | 2020.05.05 |
| [DP] 9461 파도반수열 (0) | 2020.05.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 최단경로
- 세마포어
- C++
- client side rendering
- 인접리스트
- Java
- 병행프로세스
- server side rendering
- 이진탐색
- 스텍
- 자료구조
- dfs
- 퀵정렬
- 운영체제
- 동적프로그래밍
- javascript
- 배열
- stackframe
- Stack
- 구조체
- 재귀함수
- 알고리즘
- 소프트웨어
- 입출력장치
- C
- react
- BFS
- 클래스
- 교착상태
- 인접행렬
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
글 보관함
