본문 바로가기
백준

1173번: 운동

by bingual 2022. 2. 15.
반응형

 

 

 

 

 

풀이

 

본문 내용과 같이 조건을 걸어 구현해 낸다.

 

 

 

 

자바

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine(), " ");

		int N = Integer.parseInt(st.nextToken()); // 운동할 시간
		int m = Integer.parseInt(st.nextToken()); // 현재 맥박
		int M= Integer.parseInt(st.nextToken()); // 제한 맥박
		int T = Integer.parseInt(st.nextToken()); // 운동시간 초
		int R = Integer.parseInt(st.nextToken()); // 휴식시간 초

		int t_minute = 0; // 운동시간 분
		int r_minute = 0;// 휴식시간 분
		int x = m; // 현재 맥박
        
		while (true) {
        	// 운동시간이 운동할 시간과 같아지면 운동시간과 휴식시간의 합을 출력하고 종료
			if (t_minute == N) {
				System.out.println(t_minute + r_minute);
				break;
			}
            
            // 현재 맥박수 + 운동시간이 제한 맥박 이하일경우
			else if (x + T <= M) {
				x += T; 
				t_minute += 1;
			}
            
            // 현재 맥박수 + 운동시간이 제한 맥박 이상일경우
			else if (x + T > M) {
				x -= R;
				r_minute += 1;
                
                // 시작 맥박수 + 운동시간이 제한 맥박 이상일경우 -1출력후 종료
				if (m + T > M) {
					System.out.println(-1);
					break;
				}
                
                // 현재 맥박이 시작 맥박보다 작을경우
				else if (x < m) x = m;;				
			}
		}			
	}	
}

 

 

 

 

 

 

파이썬

N, m, M, T, R = map(int, input().split())

t_minute = 0 	# 운동한 시간 분
r_minute = 0 	# 휴식한 시간 분
x = m	# 현재 맥박

while True:
    # 운동시간이 운동할 시간과 같아지면 운동시간과 휴식시간의 합을 출력하고 종료
    if t_minute == N:
        print(t_minute + r_minute)
        break

    # 현재 맥박수 + 운동시간이 제한 맥박 이하일경우
    elif x + T <= M:
        x += T
        t_minute += 1

    # 현재 맥박수 + 운동시간이 제한 맥박 이상일경우
    elif x + T > M:
        x -= R
        r_minute += 1

        # 시작 맥박수 + 운동시간이 제한 맥박 이상일경우 -1출력후 종료
        if m + T > M:
            print(-1)
            break
        
        # 현재 맥박이 시작 맥박보다 작을경우
        elif x < m:
            x = m

 

'백준' 카테고리의 다른 글

17224번: APC는 왜 서브태스크 대회가 되었을까?  (0) 2022.02.15
14487번: 욱제는 효도쟁이야!!  (0) 2022.02.15
1546번: 평균  (0) 2022.02.15
1110번: 더하기 사이클  (0) 2022.02.15
2810번: 컵홀더  (0) 2022.02.15