728x90
반응형
https://www.acmicpc.net/problem/11055
11055번: 가장 큰 증가 부분 수열
수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수
www.acmicpc.net
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> arr(n);
vector<int> dp(n);
for(int i = 0; i < n; i++){
cin >> arr[i];
}
int answer = 0;
for(int y = 0; y < n; y++){
dp[y] = arr[y];
for(int x = 0; x < y; x++){
if(arr[x] < arr[y]){
dp[y] = max(dp[y], dp[x] + arr[y]);
}
}
answer = max(answer, dp[y]);
}
cout << answer << endl;
return 0;
}
728x90
반응형
'Algorithm > BAEKJOON' 카테고리의 다른 글
[BOJ] 22945번 팀 빌딩 (C++) (0) | 2022.05.18 |
---|---|
[BOJ] 2467번 용액 (C++) (0) | 2022.05.17 |
[BOJ] 11053번 가장 긴 증가하는 부분 수열 (C++) (0) | 2022.05.16 |
[BOJ] 14567번 선수과목 (Prerequisite) (C++) (0) | 2022.05.15 |
[BOJ] 1149번 RGB거리 (C++) (0) | 2022.05.14 |