본문 바로가기
코딩 테스트/다이나믹 프로그래밍

병사 배치하기

by hazel_ 2021. 2. 22.

p. 380

 

n=int(input())

array=list(map(int, input().split()))
array.reverse()
d=[1]*n

for i in range(1,n):
  for j in range(0,i):
    if array[j]<array[i]:
      d[i]=max(d[i], d[j]+1)

print(n-max(d))

 

reverse를 한 후 '가장 긴 증가하는 부분 수열' 아이디어를 활용한다.

'코딩 테스트 > 다이나믹 프로그래밍' 카테고리의 다른 글

편집 거리  (0) 2021.02.22
못생긴 수  (0) 2021.02.22
퇴사  (0) 2021.02.22
정수 삼각형  (0) 2021.02.22
금광  (0) 2021.02.22

댓글