(이코테) 떡볶이 떡 만들기

Seogyu Gim·2021년 1월 4일
0

코딩테스트

목록 보기
45/47
post-thumbnail
n, m = list(map(int,input().split(' ')))
arr = list(map(int, input().split()))

start = 0
end = max(arr)
result = 0
while start <= end:
  mid = (start+end) // 2 # 중간 값을 구한다
  
  # 중간값으로 잘랐을때의 합계를 구한다
  total = sum([i-mid for i in arr if i>mid])
  
  # 합계가 더 작다면 더 많이 잘라야 한다
  if total < m:
    end = mid - 1
  # 합계가 더 크다면 덜 잘라도 된다
  else:
    start = mid + 1
    result = mid

print(result)
profile
의미 있는 일을 하고싶은 개발자

0개의 댓글