[백준/파이썬] 1173번 운동 풀이

업데이트:



문제 정보


풀이

문제

운동 N분을 해야 하며, 운동하면 맥박이 T 증가하고 쉬면 R 감소합니다.

맥박은 최소 m, 최대 M 범위를 벗어날 수 없습니다. 총 몇 분이 걸리는지 구하는 문제입니다.

코드

N,m,M,T,R=map(int,input().split())
t,c=0,m
while m+T<=M and N>0:
    t+=1
    if c+T<=M:
        N-=1
        c=min(c+T,M)
    else:c=max(m,c-R)
print(t if t>0 else -1)

설명

운동 가능 조건(현재맥박 + T <= M)이면 운동 1분을 진행하고, 불가능하면 휴식 1분으로 맥박을 낮춥니다.

처음부터 m + T > M이면 운동 자체가 불가능하므로 -1을 출력합니다.



댓글남기기