PS/BOJ

[Python] 2805번 나무 자르기

s_omi 2024. 7. 25. 10:40
728x90
반응형
SMALL

✏️ 문제

 

문제 파악

이분 탐색을 사용해야 하는 거의 대표적인 문제!!!!!

이분 탐색을 안 사용하면 보통.. 아니 대개 "시간 초과" 가 뜬다... ^^

 

알고리즘

  • 이분 탐색
  • 매개 변수 탐색

 

코드

n, m = map(int, input().split())  
trees = list(map(int, input().split()))  

def binary_search(trees, target):
  left, right = 0, max(trees)

  while left <= right:
    mid = (left + right) // 2
    total = 0
    
    for h in trees: 
      if h > mid:
        total += h - mid

    if total < target:
      right = mid - 1
    else:
      left = mid + 1

  return right

print(binary_search(trees, m))

 

 

 

 


⭐️ 이분 / 이진 탐색에 대해 잘 모른다면?

2024.07.25 - [알고리즘] - [알고리즘] 이분 / 이진 탐색 (Binary Search) 알고리즘

 

728x90
반응형
LIST

'PS > BOJ' 카테고리의 다른 글

[Python] 2776번 암기왕  (0) 2024.07.26
[Python] 7795번 먹을 것인가 먹힐 것인가  (0) 2024.07.26
[Python] 20115번 에너지 드링크  (0) 2024.07.25
[Python] 3135번 라디오  (0) 2024.07.25
[Python] 20044번 Project Teams  (2) 2024.07.24