풀이
- 조건식을 통해 최대 혈압 - 최소 혈압의 차이가 T를 넘을 경우 -1 출력하도록 하기
- 넘지 않고 최소 혈압에 운동 후의 추가 혈압이 최대를 넘지 않을 경우와
- 넘을 경우에 대한 조건 분기를 하며
- 넘을 경우에는 다시 운동할 수 있는 혈압이 될때까지 while문을 반복한 다음
- 운동한 뒤 카운팅하여 문제 해결
import sys
input = sys.stdin.readline
N,m,M,T,R = map(int,input().split())
be_m = m
cnt = 0
if M-m >= T: # 추가 혈압이 초과 되지 않는 범위
for _ in range(N):
if m+T <= M: # 맥박 초과 X
m += T
cnt += 1
else:
while (m+T > M):
cnt += 1
if m-R >= be_m: m -= R
else:
m = be_m
break
m += T
cnt += 1
print(cnt)
else: print(-1)
'알고리즘' 카테고리의 다른 글
[백준, 자바, 1159번] 농구 경기 (0) | 2023.12.13 |
---|---|
[백준, 자바, 1173번] 운동 (0) | 2023.12.13 |
[백준, 파이썬, 25206번] 너의 평점은 (1) | 2023.10.11 |
[백준, 파이썬, 10988번] 팰린드롬인지 확인하기 (0) | 2023.10.11 |
[백준, 파이썬, 1075번] 나누기 (0) | 2023.10.09 |