PS/BOJ

[Python] 14627번 파닭파닭

s_omi 2024. 7. 31. 09:53
728x90
반응형
SMALL

✏️ 문제


문제 파악

 

 

알고리즘

  • 매개 변수 탐색
  • 이분 탐색

 

 

코드

import sys
input = sys.stdin.readline

s, c = map(int, input().split())
l = [int(input()) for i in range(s)]

best_remain = 0
start, end = 1, max(l)
while start <= end:
  mid = (start + end) // 2
  num = 0
  remain = 0

  for length in l:
    num += (length // mid)
    remain += (length % mid)

  if num > c:
    remain += (num - c) * mid
    best_remain = remain 
    start = mid + 1
  elif num == c:
    best_remain = remain 
    start = mid + 1
  else:
    end = mid - 1

print(best_remain)

 

728x90
반응형
LIST

'PS > BOJ' 카테고리의 다른 글

[Python] 13702번 이상한 술집  (0) 2024.07.31
[Python] 1166번 선물  (0) 2024.07.31
[Python] 6236번 용돈 관리  (0) 2024.07.30
[Python] 2417번 정수 제곱근  (0) 2024.07.30
[Python] 17266번 어두운 굴다리  (0) 2024.07.30