Programming/백준

[실버 3] 백준 23351 - 물 주기 (파이썬)

pental 2025. 5. 15. 17:39

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

풀이

  • 총 N개의 화분이 있다.
  • 하루에 A개만큼의 화분에 물을 줄 수 있다.
  • 물을 주면, 해당 화분의 수분량이 B만큼 회복된다.
  • 수분량이 0이 되면 화분이 죽는다.
  • 처음 모든 화분은 수분량 K로 시작한다.
  • 모든 화분을 죽이지 않고 버틸 수 있는 최대 일수를 구하라.

코드

# 백준 23351 - 물 주기
# 분류 : 우선순위 큐

from queue import PriorityQueue
N, K, A, B = map(int, input().split())

N //= A
pq = PriorityQueue()
for _ in range(N) :
    pq.put(K)

count = 0
zero = 0
while True :
    x = pq.get()
    if x == zero :
        break

    x += B
    zero += 1

    pq.put(x)
    count += 1

print(count)