전깃줄 (2565) 본문
728x90
n = int(input())
lines = []
for _ in range(n):
lines.append(list(map(int, input().split())))
lines = sorted(lines, key=lambda x: x[0])
# LIS
result = [[] for _ in range(n)]
for i in range(n):
if i == 0:
result[i].append(lines[i][1])
else:
for j in range(0, i):
if result[j][-1] < lines[i][1]:
if len(result[i]) - 1 < len(result[j]):
result[i] = result[j] + [lines[i][1]]
if not result[i]:
result[i].append(lines[i][1])
m = 0
for i in range(n):
m = max(m, len(result[i]))
print(n - m)
# 한 전봇대 기준으로 정렬 -> 전체 개수에서 오름차순 개수 빼기
'Algorithms > DP (Dynamic Programming)' 카테고리의 다른 글
가장 큰 증가 부분 수열 [11055] with 파이썬 (0) | 2020.06.05 |
---|---|
2차원 배열의 합 [2167] with 파이썬 (0) | 2020.06.05 |
연속합 (1912) (0) | 2020.05.19 |
RGB 거리 (1149) (0) | 2020.05.19 |
파도반 수열 (9641) (0) | 2020.05.19 |
Comments