https://www.acmicpc.net/problem/2869
문제
땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.
달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.
달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
출력
첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.
#include<iostream>
using namespace std;
int main(){
int A, B, V;
cin >> A >> B >> V;
if (V == A) {
cout << "1";
}
else{
int day = (V - A) / (A - B);
int remainder = (V - A) % (A - B);
if (remainder == 0) cout << day + 1;
else cout << day + 2;
}
return 0;
}
소스코드
첫날에 다 올라갈 수있기 때문에 이런 경우 1을 바로 출력하도록 한다.
1일 이상 걸리는 경우들은 마지막 날은 불규칙하므로 제외하고 총 거리에서 아침에 올라간 거리에서 미끄러진 거리를 뺀 값으로 나눠준다. 즉 걸린 날 수 day를 (V-A) / (A-B) 로 설정 해둔다.
이후 마지막날은 밤에 미끄러지지 않기 때문에 따로 계산해준다. 계산하기 위해 remaider를 설정 하고 (V-A)를 (A-B)로 나눈 나머지값을 구해준다. 만약 이가 0인경우 전날 아침 딱 맞게 올라간 것이므로 day에 하루만 더하고, 이가 아닌경우 하루가 더 필요하므로 2를 더한다.
'Koala - 14기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/Python] 16935번 배열 돌리기 (0) | 2024.04.13 |
---|---|
[백준/Python3] 3985번 롤 케이크 (0) | 2024.04.08 |
[백준/Python] 9226번 도깨비말 (0) | 2024.04.07 |
[백준/Python] 1051번 숫자 정사각형 (0) | 2024.04.07 |
[백준 / c++] 3986 (0) | 2024.04.07 |