728x90
Overview
- 체감 난이도: ★☆☆☆☆
- 문제 레벨: 실버 2
- 문제 유형: 이분탐색
- 풀이 상태: 답안참고 / 스스로 해결
- 추후: 다시 풀어보기 / 간단 복습 / 완벽 이해
[문제]
https://www.acmicpc.net/problem/2805
[코드]
시작과 끝을 나무 길이로 설정해준다.
나무 길이에서 톱 길이를 빼준 값을 더해, 그 값이 m(필요한 나무의 길이)보다 크거나 작으면 톱의 높이를 올린다.
n, m = map(int, input().split()) # 나무 수, 나무의 길이
arr = list(map(int, input().split()))
start = 0
end = max(arr)
result = 0
while start <= end:
mid = (start + end) // 2
tree = sum(x-mid for x in arr if (x-mid) >= 0)
if tree >= m:
result = mid
start = mid + 1
else:
end = mid - 1
print(result)
반응형
'🚩 Coding Test > Baekjoon' 카테고리의 다른 글
[BOJ][Python] 9184 신나서 함수 실행 (0) | 2024.10.31 |
---|---|
[BOJ][Python] 11659 구간 합 구하기 4 (0) | 2024.10.31 |
[BOJ][Python] 1654 랜선 자르기 (0) | 2024.10.31 |
[BOJ][Python] 1003 피보나치 함수 (0) | 2024.10.07 |
[BOJ][Python] 11723 집합 (0) | 2024.09.30 |