전체 글 (166)

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
 
04
02

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

 

벌집의 크기는 6의 배수만큼씩 커진다.

벌집의 숫자 늘어난 갯수
1 1
2~7 6
8~19 12
20~37 18
...  

 

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());

            int a = 1;
            for (int i = 0; ; i++)
            {
                if(n <= i*6+a)
                {
                    Console.Write(i + 1);
                    break;
                }
                else
                {
                    a += i * 6;
                }
            }

        }
    }
}

 

예제 입력 1 

13

예제 출력 1 

3

 

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

2869번. 달팽이는 올라가고 싶다  (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
 
04
02

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

 

입력값

  • 고정 비용 : A
  • 가변 비용 : B
  • 판매 비용 : C

판매량 : i

손익분기점 : A+B*i < C*i

 

C*i = A+B*i

C*i-B*i = A

(C-B)*i = A

i = A(C-B)

 

손익분기점은 최초로 이익이 발생되는 시점이므로 판매량을 하나 더해줘야 한다.

 

using System;

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

            int a = int.Parse(s[0]);
            int b = int.Parse(s[1]);
            int c = int.Parse(s[2]);

            if (b >= c)
            {
                Console.Write(-1);
            }
            else
            {
                Console.Write(a/(c-b)+1);
            }
        }
    }
}

 

예제 입력 1 

1000 70 170

예제 출력 1 

11

예제 입력 2 

3 2 1

예제 출력 2 

-1

예제 입력 3 

2100000000 9 10

예제 출력 3 

2100000001

 

 

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

2869번. 달팽이는 올라가고 싶다  (0) 2022.04.02
2292번. 벌집  (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