728x90
반응형
https://www.acmicpc.net/problem/2631
2631번: 줄세우기
KOI 어린이집에는 N명의 아이들이 있다. 오늘은 소풍을 가는 날이다. 선생님은 1번부터 N번까지 번호가 적혀있는 번호표를 아이들의 가슴에 붙여주었다. 선생님은 아이들을 효과적으로 보호하기
www.acmicpc.net
문제 해결
- LIS (Long Increase sequence) 구하는 문제
- 가장 긴 증가하는 수열이 만들어 진 부분 수열을 구한다음 그 원소들을 빼고 나머지를 필요한 곳으로 옮기면 되는 것이다.
CODE
import sys
input = sys.stdin.readline
n = int(input())
A = [0]+[int(input()) for _ in range(n)]
dp = [0 for _ in range(n+1)]
M = 0 # 최대 증가 길이 수열 (LIS)
for i in range(1,n+1):
for j in range(1,i):
if A[i] > A[j]:
M = max(M,dp[j])
dp[i] = M + 1 # 원소 i까지 포함해야하므로
M = 0 # reset
print(n-max(dp)) # 이미 만들어진 LIS빼고 나머지 원소를 옮기면 된다.
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[python] 백준 1092 배 (0) | 2023.03.21 |
---|---|
[python] 백준 1495 기타리스트 (0) | 2023.03.20 |
[python] 백준 15683 감시 (0) | 2023.03.19 |
[python] 백준 1057 토너먼트 (0) | 2023.03.19 |
[python] 백준 2468 안전 영역 (0) | 2023.03.19 |
댓글