728x90
반응형
이분 탐색 문제이다. 처음에 s를 1로 했다가 계속 틀렸다.
제일 긴 음악의 길이로 시작하는 게 맞다 -> s = max(li)
def count(li, m):
t = cnt = 0
for n in li:
if t+n > m:
cnt += 1
t = n
else:
t += n
return cnt+1
N, M = map(int, input().split())
li = list(map(int, input().split()))
s, e = max(li), sum(li)
res = 0
while s <= e:
m = (s+e)//2
if count(li, m) <= M:
res = m
e = m-1
else:
s = m+1
print(res)
728x90
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 2428번 표절(python) (2) | 2021.02.26 |
---|---|
백준 알고리즘 2417번 정수 제곱근(python) (0) | 2021.02.26 |
백준 알고리즘 2022번 사다리(python) (0) | 2021.02.26 |
백준 알고리즘 1590번 캠프가는 영식(python) (0) | 2021.02.26 |
백준 알고리즘 1072번 게임(python) (0) | 2021.02.26 |