14627 파닭 파닭
업데이트:
1. 문제
문제는 링크에 들어가면 있다.
2. 정답 코드
문제의 내 정답 코드는 다음과 같다.
import sys
input = sys.stdin.readline
S,C = map(int,input().split())
green_onions = []
for _ in range(S):
green_onions.append(int(input()))
s = 1
e = max(green_onions)
while s<=e :
m = (s+e)//2
temp = 0
for g in green_onions :
temp += (g//m)
if temp >= C :
s = m+1
else :
e = m-1
rest = sum(green_onions)-e*C
# for g in green_onions :
# rest += g%e
print(rest)
3. 풀이 및 생각
문제 풀이
문제는 기본적인 이진 탐색으로 해결 가능하다.
나의 생각
뭔가 mid 혹은 mid를 통해 어떤 값을 계산하면, start와 end를 땡기는 조건은 항상 기본적인 이진 탐색문제들은 대부분 동일한 것 같다. 그러니까 저 방식을 외우도록 하자.