문제
랑이 집사는 고양이들이 좋아한다는 캣닢을 직접 재배하려고 한다.
일직선으로 놓여진 개의 화분에 캣닢이 하나씩 심어져 있다.
각 화분은 초기에 만큼의 수분을 머금고 있고, 매일 아래와 같은 일이 순서대로 일어난다.
1.랑이 집사가 연속된 개의 화분에 물을 준다. 이 때 물을 준 화분의 수분은 만큼씩 증가한다.
2.모든 화분의 수분이 1씩 감소한다.
3.수분이 0이 된 화분에 있는 캣닢은 죽는다.
모든 캣닢이 살아 있는 기간이 최대한 길어지도록 물을 줄 때, 첫 캣닢이 죽는 날짜를 출력하는 프로그램을 작성하시오. 첫 날은 1일이다.
풀이
N, K, A, B = map(int, input().split())
flowerpot = list(K for _ in range(N))
day = 0
while min(flowerpot) != 0:
for _ in range(A):
flowerpot[flowerpot.index(min(flowerpot))] += B
for i in range(N):
flowerpot[i] -= 1
day += 1
print(day)
이 문제는 캣닢이 최초로 죽는 날짜를 구하는 문제이다.
가장 수분이 없는 A개의 화분에 B만큼 물을 주고 모든 화분의 수분을 1을 빼준다.
이 과정을 while문을 통해 캣닢이 죽기 전까지 반복 하면 된다.