Algorithm/Algorithm 문제 풀이
[BAE/<JOON> 문제풀이] 1965. 상자넣기 (DP.038)
폭풍저그머성찡
2020. 5. 12. 18:37
https://www.acmicpc.net/problem/1965
1965번: 상자넣기
정육면체 모양의 상자가 일렬로 늘어서 있다. 상자마다 크기가 주어져 있는데, 앞에 있는 상자의 크기가 뒤에 있는 상자의 크기보다 작으면, 앞에 있는 상자를 뒤에 있는 상자 안에 넣을 수가 ��
www.acmicpc.net
더보기
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> arr, dp;
int n;
cin >> n;
arr.resize(n + 1);
dp.resize(n + 1);
for (int i = 1; i <= n; i++) {
cin >> arr[i];
}
dp[1] = 1;
for (int i = 2; i <= n; i++) {
int mx = 0;
for (int j = 1; j < i; j++) {
if (mx < dp[j] && arr[j] < arr[i]) {
mx = dp[j];
}
}
dp[i] = mx + 1;
}
int mxx = dp[1];
for (int i = 1; i <= n; i++) {
if (mxx < dp[i]) mxx = dp[i];
}
cout << mxx;
return 0;
}