주어진 수열을 오름차순으로 정렬하기위해 최소 몇 개의 수를 옮겨야하는지 찾는 문제였다.
LIS(최장 증가 부분 수열) 알고리즘을 적용해서 풀었다.
import sys
def input(): return sys.stdin.readline().rstrip()
n = int(input())
nums = [int(input()) for _ in range(n)]
dp = [0] * n
for i in range(n):
for j in range(i):
if nums[i] > nums[j]:
dp[i] = max(dp[i],dp[j])
dp[i] += 1
print(n - max(dp))