[백준] 2565번 전깃줄 - python 파이썬

2024. 10. 14. 00:05·코딩테스트/백준

문제

 

 

 

 

이 문제를 처음 봤을 때는 솔직히 도대체 어떻게 풀어주어야할 지 감이 안잡혔다....

a번 번호를 기준으로 오름차순 정렬은 해봤는데 그 이후로 진도가 안나가서 구글링을 해봤고 LIS알고리즘에 대해서 알게 되었다.

 

 

LIS알고리즘 관련 내용

https://4legs-study.tistory.com/106

 

최장 증가 수열 (LIS, Longest Increasing Subsequence)

최장 증가 수열 (LIS, Longest Increasing Subsequence) 최장 증가 수열, 정확히 최장 증가 부분 수열은 어떠한 수열에서 오름차순으로 증가하는 가장 긴 부분수열을 의미한다. 이 때, 부분 수열의 각 수는

4legs-study.tistory.com

 

 

 

 

 

이 설명을 보면 뭔가 이해는 되는데 그래서 이 문제에 어떻게 적용 해야하는건가 의문이 들 수 있다.

 

이때 답은 n-최장증가 수열의 길이가 된다

 

이게 대체 어떻게 이렇게 되는지 이해가 안될 수도 있는데 설명하자면 우리가 구하는건 선을 교차하지 않게 하도록 할 때 제거해야하는 전선의 "최소" 개수 이다.

 

그러니 교차하지 않는다 =  증가 수열   이 되고 전선의 개수를 최소로 제거할 때는 증가수열이 최장 증가수열이 될 때 이다.(전선을 최소로 제거하면 남는 증가 수열은 최장증가수열이 되기 때문)

 

그래서 LIS알고리즘 대로 최장증가수열의 길이를 구해준 후 답은 n-max(dp)   로 해주면 된다.

 

 

 

코드

n = int(input())
ab = []
for i in range(n):
    a,b = map(int, input().split())
    ab.append([a,b])

ab.sort(key = lambda x:x[0])

dp = [1] * n

for i in range(n):
    for j in range(i):
        if ab[i][1]> ab[j][1]:
            dp[i] = max(dp[i],dp[j]+1)

print(n-max(dp))

 

'코딩테스트 > 백준' 카테고리의 다른 글

[백준]2096번 내려가기 - python 파이썬 feat.메모리초과 오류 해결  (1) 2024.10.17
[백준]1068번 트리 - ptyhon파이썬  (2) 2024.10.16
[백준]14891번 톱니바퀴 -python 파이썬  (2) 2024.10.12
[백준] 2294번 동전2 -python 파이썬  (1) 2024.10.12
[백준] 2493번 탑 - python 파이썬  (2) 2024.10.06
'코딩테스트/백준' 카테고리의 다른 글
  • [백준]2096번 내려가기 - python 파이썬 feat.메모리초과 오류 해결
  • [백준]1068번 트리 - ptyhon파이썬
  • [백준]14891번 톱니바퀴 -python 파이썬
  • [백준] 2294번 동전2 -python 파이썬
hiwon
hiwon
천천히 굴러가는 코딩일기
  • hiwon
    하이원의 코딩 일기
    hiwon
  • 전체
    오늘
    어제
    • 분류 전체보기 (83)
      • 프론트엔드 (0)
        • react (0)
      • 백엔드 (13)
        • node.js (1)
        • spring (6)
      • 코딩테스트 (57)
        • 백준 (41)
        • 프로그래머스 (15)
      • 프로디지털아카데미 (9)
        • 클라우드 (1)
        • JavaScript (1)
      • github (1)
      • AWS (2)
      • Infra (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로디지털아카데미
    MSA
    투포인터
    spring
    K디지털트레이닝
    백엔드
    다익스트라
    백준
    AWS
    python
    코테
    kdt교육
    BFS
    알고리즘
    알파코캠퍼스
    알파코
    깃허브
    Java
    IT기획
    프디아
    신한투자증권
    프로그래머스
    UnionFind
    EC2
    그리디
    github
    파이썬
    bastion host
    코딩테스트
    백트래킹
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
hiwon
[백준] 2565번 전깃줄 - python 파이썬
상단으로

티스토리툴바