문제
땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.
달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.
달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
출력
첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.
코드
using System;
public class Program
{
public static void Main()
{
// :: [설계]
// :: (올라가는 거리, 떨어지는 거리, 총 거리)를 한 줄로, ' ' 구분으로 입력 받는다.
// :: 총 거리에서 마지막에 떨어지지 않는 거리만큼 뺀다.
// :: 하루에 올라가는 거리(올라가는 거리 - 떨어지는 거리)를 구한다.
// :: 총 거리 / 하루에 올라가는 거리로 날짜를 구한다.
// :: 만약 총 거리 % 하루에 올라가는 거리가 나머지가 있으면, 날짜를 하루 더 더해준다.
// :: 출력한다.
// :: [구현]
// :: (올라가는 거리, 떨어지는 거리, 총 거리)를 한 줄로, ' ' 구분으로 입력 받는다.
string[] inputRaw = Console.ReadLine().Split(' ');
int climbDistance = int.Parse(inputRaw[0]);
int fallDistance = int.Parse(inputRaw[1]);
int goalDistance = int.Parse(inputRaw[2]);
// :: 총 거리에서 마지막에 떨어지지 않는 거리만큼 뺀다.
goalDistance -= fallDistance;
// :: 하루에 올라가는 거리(올라가는 거리 - 떨어지는 거리)를 구한다.
int dailyDistance = climbDistance - fallDistance;
// :: 총 거리 / 하루에 올라가는 거리로 날짜를 구한다.
int days = goalDistance / dailyDistance;
// :: 만약 총 거리 % 하루에 올라가는 거리가 나머지가 있으면, 날짜를 하루 더 더해준다.
if((goalDistance % dailyDistance) != 0) {
days += 1;
}
// :: 출력한다.
Console.WriteLine(days);
}
}
'C# > Baekjoon' 카테고리의 다른 글
백준 2775 : 부녀회장이 될테야 (0) | 2022.03.22 |
---|---|
백준 10250 : ACM 호텔 (0) | 2022.03.17 |
백준 2480 : 주사위 세개 (0) | 2022.03.12 |
백준 2525 : 오븐 시계 (0) | 2022.03.09 |
백준 18108 : 1998년생인 내가 태국에서는 2541년생?! (0) | 2022.03.07 |