[Python][백준 13702] 이상한 술집

김바덕·2023년 6월 7일

백준

목록 보기
8/23
post-thumbnail

문제

https://www.acmicpc.net/problem/13702

이 문제를 처음엔 count 변수와 total 변수를 사용해서 count += i // mid
total += i - mid
이런식으로 해서 풀었는데, 사실상 count변수는 필요가 없었다.

그리고 내가 놓친 부분이 문제에서는 "최소한의 술의 양"을 구하라고 했는데, 나는 최대 술의 양을 구해서 틀렸었다.

문제에서 요구하는 조건을 더 꼼꼼하게 읽어야겠다.

나의 풀이

n, m = map(int, input().split())
array = [int(input()) for _ in range(n)]

start = 1  # 최소한의 술의 양은 1이므로 start를 1로 설정합니다.
end = max(array)  # 최대 술의 양을 구합니다.

result = 0
while start <= end:
    total = 0
    mid = (start + end) // 2

    for i in array:
        total += i // mid

    if total >= m:
        result = mid
        start = mid + 1
    else:
        end = mid - 1

print(result)
profile
UXUI Designer

0개의 댓글