Hanbit the Developer
[Python] 백준 2568번: 전깃줄 - 2 본문
https://www.acmicpc.net/problem/2568
먼저, 예시 입력 1의 전깃줄을 정렬하면 다음과 같다.
1 8
2 2
3 9
4 1
6 4
7 6
9 7
10 10
여기서 전깃줄이 안 꼬인다는 것은, 계속해서 값이 커져야만 한다. 즉, 가장 긴 증가하는 부분 수열을 구한다.
O(NlogN)으로 가장 긴 증가하는 부분 수열을 구하는 것은 아래 링크에 설명되어있다.
https://rccode.tistory.com/entry/14003
아무튼, 이러한 생각을 하게 되어 LIS를 쓰기만 하면 이 문제는 맞게 된다. 단, 우리가 구한 LIS는 꼬이지 않는 전깃줄에 대한 것이므로, 출력할 때 이것의 차집합을 해주면 된다.
'Algorithm > 백준' 카테고리의 다른 글
[Python] 백준 3356번: 라디오 전송 (0) | 2021.08.27 |
---|---|
[Python] 백준 2533번: 사회망 서비스(SNS) (0) | 2021.08.26 |
[Python] 백준 2056번: 작업 (0) | 2021.08.25 |
[Python] 백준 1915번: 가장 큰 정사각형 (0) | 2021.08.24 |
[Python] 백준 14722번: 우유 도시 (0) | 2021.08.23 |