알고리즘
BOJ 11053 가장 긴 증가하는 부분 수열 c++
백준 11053
```c++ #include
int n;
int arr[1003];
int d[1003];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for (int i = 1; i <= n; i++)
cin >> arr[i];
d[1] = 1;
for (int i = 2; i <= n; i++) {
d[i] = 1;
for (int j = 1; j < i; j++) {
if (arr[j] < arr[i])
d[i] = max(d[i], d[j] + 1);
}
}
cout << *max_element(d + 1, d + n + 1);
}
<br>
잘 생각해보면, d\[i]번째에 여태껏 만난 최대값을 담은 뒤 끝까지 비교하며 d\[n-1] 까지 담은 뒤,
d 배열 중 가장 큰 놈을 뽑아내면 된다.
<br>
max_element는 시작주소와 마지막주소 + 1을 넣으면 최대값이 담긴 곳의 주소를 리턴하는 함수.
<br>
'Algorithm' 카테고리의 다른 글
BOJ 11047 c++ (0) | 2020.07.16 |
---|---|
BOJ 1912 c++ (0) | 2020.07.16 |
BOJ 1463 c++ (0) | 2020.07.15 |
BOJ 1149 c++ (0) | 2020.07.15 |
BOJ 2579 c++ (0) | 2020.07.15 |
최근댓글