본문 바로가기

boj

백준 2565 전깃줄

https://www.acmicpc.net/problem/2565

 

2565번: 전깃줄

첫째 줄에는 두 전봇대 사이의 전깃줄의 개수가 주어진다. 전깃줄의 개수는 100 이하의 자연수이다. 둘째 줄부터 한 줄에 하나씩 전깃줄이 A전봇대와 연결되는 위치의 번호와 B전봇대와 연결되는

www.acmicpc.net

예전에 비슷한 문제를 읽어봐서 쉽게 풀 수 있었다.

 

문제는 헷갈리지만, 이를 요약하면,

'가장 긴 부분 증가수열을 A를 찾아라' 로 요약할 수 있다.

 

이후 전체 전깃줄에서 A에 속하지 않은 전깃줄을 모두 잘라내면 되므로

 

전체길이-가장 긴 부분증가수열의 길이 가 답이다

 

%%코드%%

 

n=int(input())

elect=sorted([list(map(int,input().split()))for _ in range(n)])
dp=[1 for _ in range(n)]

for i in range(1,n):
    for j in range(i):
        if elect[i][1]>elect[j][1]:
            tmp=dp[j]+1
            if tmp>dp[i]:
                dp[i]=tmp
max_dp=max(dp)
print(n-max_dp)

모르는 알고리즘이면 유추하느라 고생깨나 했을거같다.

 

'boj' 카테고리의 다른 글

백준 6064 카잉 달력  (0) 2022.04.05
백준 1260 DFS와BFS  (0) 2022.04.04
백준 11170 0의 개수  (0) 2022.04.03
백준 1748 수 이어쓰기 1  (0) 2022.04.02
백준 1107 리모컨  (0) 2022.04.02