[백준] 23351번 물 주기 (Python 파이썬)

쏘쓰·2022년 10월 8일
0

Algorithm

목록 보기
6/7

문제

랑이 집사는 고양이들이 좋아한다는 캣닢을 직접 재배하려고 한다.

일직선으로 놓여진 NN개의 화분에 캣닢이 하나씩 심어져 있다.

각 화분은 초기에 KK만큼의 수분을 머금고 있고, 매일 아래와 같은 일이 순서대로 일어난다.

1.랑이 집사가 연속된 AA개의 화분에 물을 준다. 이 때 물을 준 화분의 수분은 BB만큼씩 증가한다.
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문을 통해 캣닢이 죽기 전까지 반복 하면 된다.

0개의 댓글