※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 1173번 문제인 운동이다.
문제는 아래 링크를 확인하자.

https://www.acmicpc.net/problem/1173

 

1173번: 운동

첫째 줄에 다섯 정수 N, m, M, T, R이 주어진다.

www.acmicpc.net

문제에 주어진 대로 시뮬레이션을 돌리면 문제를 풀 수 있다.

 

운동을 한번도 할 수 없는 경우를 제외하면 운동을 완료할 수 있으니, 운동을 마칠 수 없는 경우는 맨 처음 한번만 확인하면 된다는 점을 확인하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
using namespace std;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	int N, m, M, T, R; cin >> N >> m >> M >> T >> R;
	int cnt = 0;
	int timespent = 0;
	int beat = m;
	if (beat + T > M) { // 운동 불가
		cout << -1;
		return 0;
	}
	while (cnt < N) { // 운동 가능: 시뮬레이션
		timespent++;
		if (beat + T <= M) {
			beat += T;
			cnt++;
		}
		else {
			if (beat - R >= m) beat -= R;
			else beat = m;
		}
	}
	cout << timespent;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 10984 // C++] 내 학점을 구해줘  (0) 2021.06.01
[BOJ 10834 // C++] 벨트  (0) 2021.06.01
[BOJ 2744 // C++] 대소문자 바꾸기  (0) 2021.06.01
[BOJ 1357 // C++] 뒤집힌 덧셈  (0) 2021.06.01
[BOJ 9076 // C++] 점수 집계  (0) 2021.06.01

+ Recent posts