티스토리 뷰
문제 링크
https://www.acmicpc.net/problem/11052
11052번: 카드 구매하기
첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000)
www.acmicpc.net
카드 4개를 살 때의 최댓값은
1. 카드 3개를 살 때의 최댓값 + 1번째 카드
2. 카드 2개를 살 때의 최댓값 + 2번째 카드
3. 카드 1개를 살 때의 최댓값 + 3번째 카드
4. 카드 0개를 살 때의 최댓값 + 4번째 카드
위 4가지 방법 중 최댓값을 구하면 됩니다.
따라서 카드 n개를 살 때의 최댓값은
카드 n-1개를 살 때의 최댓값 + 1번째 카드
카드 n-2개를 살 때의 최댓값 + 2번째 카드
.
.
카드 0개를 살 때의 최댓값 + n번째 카드 중 최댓값 구하면됩니다.
구현 코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <algorithm> | |
using namespace std; | |
const int MAX = 1001; | |
int dp[MAX]; | |
int cards[MAX]; | |
int main(){ | |
int n; | |
cin >> n; | |
for(int i=1;i<=n;i++) | |
cin >> cards[i]; | |
for(int i=1;i<=n;i++) | |
for(int j=1;j<=i;j++) | |
dp[i] = max(dp[i], dp[i-j] + cards[j]); | |
cout << dp[n] << endl; | |
return 0; | |
} |
'Coding Test > 백준' 카테고리의 다른 글
[C++] 백준 2011 - 암호코드 (1) | 2020.08.14 |
---|---|
[C++] 백준 2225 - 합분해 (0) | 2020.08.13 |
[C++] 백준 9461 - 파도반 수열 (0) | 2020.08.12 |
[C++] 백준 2133 - 타일 채우기 (0) | 2020.08.11 |
[C++] 백준 1699 - 제곱수의 합 (0) | 2020.08.10 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 종만북
- 외발 뛰기
- 완전탐색
- 팰린드롬 구하기
- 하이브
- 합친 lis
- 삼각형 위의 최대 경로
- pyspark
- python
- 하둡
- 백준
- 두니발 박사의 탈옥
- 스파크
- C++
- import
- HDFS
- Django
- hive
- 배열과 문자열
- Jaeha's Safe
- 코딩인터뷰 완전분석
- Sqoop
- HiveQL
- microwaving lunch boxes
- 2225
- 삼각형 위의 최대 경로 수 세기
- Hadoop
- 출전 순서 정하기
- 알고스팟
- 분할정복
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함