본문 바로가기

백준 문제/파이썬

백준 23351 물 주기(python)-[sliver(3)]

728x90

문제-https://www.acmicpc.net/problem/23351

 

23351번: 물 주기

첫째 줄에 자연수 $N$, $K$, $A$, $B$가 공백을 사이에 두고 주어진다. ($2 \le N \le 100$, $1 \le K \le 100$, $1 \le A \times B < N$, $A$는 $N$의 약수)

www.acmicpc.net

 

코드


N,K,A,B = map(int,input().split())
Pot=[K]*N
D=0
while(Pot[A]!=0):
    D+=1
    for i in range(N):
        Pot[i]-=1
    Pot = sorted(Pot)
    for i in range(A):
        Pot[i]+=B
print(D)
       Pot       화분 수
D 지난 하루 수

-화분에 담긴 물(K)이 화분의 수(N)개의 리스트를 생성한다. 이후에는 D에 하루씩 더하고 모든 화문의 물을 1리터씩 뺀다.

-while문을 이용하여 0이 되었는지를 확인하는데, 이때 sorted를 이용하여 적은 물이 담긴 A개 만큼 B리터의 물을 주고 리스트에서 물을 못 받은 화분의 물의 잔량으로 확인한다.

-while문에서 벗어난 이후 지난 날을 출력한다.

 

 

결과


input:5 5 2 1
ouput:7
728x90