◈ 오류 정정 및 피드백 환영
2805번: 나무 자르기
첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보
www.acmicpc.net
🔎문제 분석
랜선이 아닌 나무를 자를 뿐 랜선 자르기와 동일하다. 마찬가지로 이분탐색(Binary Search)으로 접근하면 된다.
[Python] 백준 - 1654번 랜선 자르기(Binary Search)
◈ 오류 정정 및 피드백 환영 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000
notepad-for-hp.tistory.com
import sys
input = sys.stdin.readline
k, n = map(int, input().split())
a = list(map(int, input().split()))
l = 1
r = max(a)
while l<=r:
mid = (l+r)//2
cnt = sum(map(lambda x: x-mid if x-mid > 0 else 0, a))
if cnt >= n:
l = mid+1
else:
r = mid-1
print(r)
'Algorithm > Python' 카테고리의 다른 글
[Python] 백준 - 10799번 쇠막대기(Stack) (0) | 2022.03.03 |
---|---|
[Python] 백준 - 1918번 후위 표기식(Stack) (0) | 2022.03.02 |
[Python] 백준 - 2110번 공유기 설치(Binary Search) (0) | 2022.02.28 |
[Python] 백준 - 2512번 예산(Binary Search) (0) | 2022.02.27 |
[Python] 백준 - 1654번 랜선 자르기(Binary Search) (0) | 2022.02.26 |
댓글