1부터 n까지의 정렬되어 있지 않은 배열을 입력받고 배열의 어느 값을 뽑아서 맨 앞이나 맨 뒤로 옮기는 연산을 수행하여 배열을 정렬하려 할 때 최소 몇 번의 연산이 필요한지 구하는 문제입니다.
import sys
N = int(sys.stdin.readline())
num = list(map(int, sys.stdin.readline().split()))
dp = [0 for i in range(N+1)]
for n in num:
dp[n] = dp[n-1]+1
print(N-max(dp))