골드 5
2565번: 전깃줄
첫째 줄에는 두 전봇대 사이의 전깃줄의 개수가 주어진다. 전깃줄의 개수는 100 이하의 자연수이다. 둘째 줄부터 한 줄에 하나씩 전깃줄이 A전봇대와 연결되는 위치의 번호와 B전봇대와 연결되는
www.acmicpc.net
문제 풀이
전깃줄의 순서를 리스트로 입력받아 한쪽의 전기줄을 기준으로 정렬한다.
나머지 한쪽에 연결되는 전기줄의 번호가 증가하면 교차하지 않는다.
따라서 나머지 한쪽에 연결되는 번호들의 가장 긴 증가하는 수열을 찾고 전체 전기줄 수에서 빼면 삭제해야 할 전기줄의 최소 개수를 구할 수 있다.
코드
n = int(input())
nums = []
for i in range(n):
nums.append(list(map(int, input().split())))
nums.sort()
dp = [0] * n
for i in range(n):
for j in range(i):
if nums[j][1] < nums[i][1] and dp[j] > dp[i]:
dp[i] = dp[j]
dp[i] += 1
print(n - max(dp))
728x90
'Algorithm > Problem' 카테고리의 다른 글
[Baekjoon] 15683번 : 감시 - Python (0) | 2022.02.04 |
---|---|
[Baekjoon] 20055번 : 컨베이어 벨트 위의 로봇 - Python (0) | 2022.02.04 |
[Baekjoon] 11054번 : 가장 긴 바이토닉 부분 수열 (0) | 2022.01.24 |
[Baekjoon] 2156번 : 포도주 시식 (0) | 2022.01.21 |
[Baekjoon] 1463번 : 1로 만들기 (0) | 2022.01.20 |