
문제
https://www.acmicpc.net/problem/18353
18353번: 병사 배치하기
첫째 줄에 N이 주어진다. (1 ≤ N ≤ 2,000) 둘째 줄에 각 병사의 전투력이 공백을 기준으로 구분되어 차례대로 주어진다. 각 병사의 전투력은 10,000,000보다 작거나 같은 자연수이다.
www.acmicpc.net
풀이
가장 긴 감소하는 부분 수열이랑 문제가 완전히 똑같다.
(가장 긴 증가하는 부분 수열의 반대로 https://whiporithm.tistory.com/11 )
n에서 가장 긴 감소하는 부분 수열의 길이를 빼주면 정답이다.
코드
n = int(input())
d = [1] * n
wars = list(map(int, input().split()))
for i in range(n):
for j in range(i):
if wars[j] > wars[i]:
d[i] = max(d[j]+1, d[i])
print(n - max(d))
'백준' 카테고리의 다른 글
1197 - 최소 스패닝 트리 (0) | 2023.06.10 |
---|---|
2579 - 계단 오르기 (0) | 2023.06.10 |
14501 - 퇴사 (0) | 2023.06.09 |
11055 - 가장 큰 증가하는 부분 수열 (0) | 2023.06.05 |
11053 - 가장 긴 증가하는 부분 수열 (0) | 2023.06.04 |