04
02

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

 

또, 정상에 올라간 후에는 미끄러지지 않는다. 는 조건을 잘 생각해서 코딩해야 한다.

정상에 도달하지 못하면 다시 미끄러졌다가 다시 올라간다.

따라서 올라가는 횟수보다 내려가는 횟수가 한번 작다.

즉, 도달한 날에는 미끄러지면 안된다.

 

N = V/(A-B)로 계산할 경우

정상에 도착했지만 밤에 미끄러지고 다시 정상에 올라가는 경우가 있을 수 있으므로

목표지점에 도착한 날에는 V-B만큼 올라갔다고 생각하면 된다.

 

N = (V-B)/(A-B)로 계산할 때

나머지가 0이면 N일차에 딱 맞추어 달팽이가 도착한 것이고,

나머지가 남는다면 N+1일 차에 달팽이가 도착한 것이다.

 

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] str = Console.ReadLine().Split(' ');

            int v = int.Parse(str[2]);
            int a = int.Parse(str[0]);
            int b = int.Parse(str[1]);

            int n = (v - b) / (a - b);

            if((v-b)%(a-b)!=0)
            {
                n++;
            }
            Console.Write(n);
          
        }
    }
}

 

예제 입력 1

2 1 5

예제 출력 1

4

예제 입력 2

5 1 6

예제 출력 2

2

예제 입력 3

100 99 1000000000

예제 출력 3

999999901

'코딩테스트 > 백준_문제' 카테고리의 다른 글

2292번. 벌집  (0) 2022.04.02
1712번. 손익분기점  (0) 2022.04.02
12100번. 2048(Easy)(골드2)  (0) 2020.08.14
1516번. 게임개발(골드3)  (0) 2020.08.13
12849번. 본대산책(실버1)  (0) 2020.08.12
COMMENT