반응형
이분 탐색 나무 자르기 문제 입니다.
M미터의 나무의 값을 찾기위해 시작값과 끝값의 범위를 중간값을 기준으로 확장, 축소하며 M미터가 가능한 최소값을 찾았습니다.
문제 풀이(파이썬)
import sys
N, M = map(int, input().split())
tree = list(map(int, input().split()))
res = 0
lt = 0
rt = max(tree)
mid = 0
while lt+1<rt:
mid = (rt+lt) // 2
res_tmp = 0
for t in tree:
if t>mid:
res_tmp = res_tmp + (t-mid)
if res_tmp == M:
lt = mid
break
elif res_tmp > M:
lt = mid
elif res_tmp < M:
rt = mid
print(lt)
반응형
'Algorithm' 카테고리의 다른 글
[프로그래머스] 정렬 - 가장 큰 수(파이썬 문제 풀이) (0) | 2021.03.18 |
---|---|
[프로그래머스] 정렬 - K번째 수(파이썬 문제 풀이) (0) | 2021.03.17 |
[ BOJ ] 백준 2512 - 예산(파이썬 문제 풀이) (0) | 2021.03.14 |
[ BOJ ] 백준 2750 - 수 정렬하기(파이썬 문제 풀이) (0) | 2021.03.13 |
[ Algorithm ] 온라인 코딩 테스트 준비하기(온라인 코딩 테스트 사이트, 온라인 개발 환경, 복잡도란) (0) | 2020.10.21 |
댓글