BOJ - 1173

주의·2024년 1월 18일
0

boj

목록 보기
91/214
post-thumbnail

백준 문제 링크
운동

❓접근법

  1. 초기값 time(구하고자 하는 값) = 0, workout(운동 시간) = 0, pulse(맥박) = m 설정
  2. 조건은 다음과 같다.
  • m <= pulse <= M 일 때
    • pulse + T <= M일 때 pulse += T, time += 1, workout += 1
    • pulse + T > M일 때
      • pulse - R < m일 때 pulse = m, time += 1
      • pulse - R >= m일 때 pulse -= R, time += 1
  • workout이 0이라면 (운동을 못한다면)
    time = -1로 만들고 반복문 탈출
  • workout이 0이 아니라면 반복문 탈출
  1. time을 출력하면 끝!

👌🏻코드

N, m, M, T, R = map(int, input().split()) 
# 운동 N, 초기 맥박, 넘으면 안되는 맥박, 운동하면 증가, 휴식하면 감소

time = 0 # 구하고자 하는 값

workout = 0

pulse = m # 초기값


while True:
    
    if pulse >= m and pulse <= M:
        
        if pulse + T <= M:
            pulse += T
            time += 1
            workout += 1
            
        
        else:
            if pulse - R < m:
                pulse = m
                time += 1
            else:
                pulse -= R
                time += 1
                
                
    if workout == 0:
        time = -1
        break
    elif workout == N:
        break
        
print(time)

0개의 댓글