https://www.acmicpc.net/problem/2631
이 문제는 다이나믹 프로그래밍(DP)을 이용하여 해결할 수 있는 문제이다.
(예제)
7
3
7
5
2
6
1
4
위 예제는 다음과 같이 옮겨 줄 세울 수 있다.
즉, 가장 긴 증가하는 부분수열을 구해서 그 길이를 n에서 빼주면 된다.
d[i] = max(d[j]+1, d[i])
j = i앞의 index중 a[i]보다 a[j]가 작을 경우
import sys
input = sys.stdin.readline
n = int(input())
d = [1]*(n+1)
num = [0]
for i in range(n):
num.append(int(input()))
#가장 긴 증가하는 수열 찾기
for i in range(1,n+1):
for j in range(1,i):
if num[j]<num[i]:
d[i]=max(d[i],d[j]+1)
#n- 긴 증가하는 부분수열의 길이
print(n-max(d))