※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 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 |