본문 바로가기
코딩테스트 준비/백준 C#

백준 C# - 2869 +) 풀이

by 코딩하는 돼징 2023. 7. 8.
반응형

처음에 문제를 접근했을때 되게 쉬운 문제네? 하고 아래와 같이 풀었었다.

static void Main(string[] args)
{
    string x = Console.ReadLine();
    string[] token = x.Split();

    int A = int.Parse(token[0]);
    int B = int.Parse(token[1]);
    int V = int.Parse(token[2]);

    int day = 1;

    while(true)
    {
        V -= A;
        if(V <= 0)
        {
            Console.WriteLine(day);
            return;
        }
        V += B;

        day++;
}

제출하고 보니 시간 초과 결과를 받았다.

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

문제를 다시 읽어보니 시간제한이 있었다.

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


반복문을 사용하지 않고 풀어보자

풀이

01 day에서 하루는 무조건 있으니까 day= 1로 설정

double day = 1;

02 (V - A) / (A - B)결과 값이 0이 아니면 하루가 더 필요하다는 뜻이므로 Ceiling을 사용


Code완성본

using System;
using System.Collections.Generic;
namespace baek2
{
   class Program
    {
        static void Main(string[] args)
        {
            string n = Console.ReadLine();
            string[] token = n.Split();
            double V = double.Parse(token[2]);
            double A = double.Parse(token[0]);
            double B = double.Parse(token[1]);

            double day = 1;

            day += Math.Ceiling((V - A) / (A - B));

            Console.WriteLine((int)day);
            
        }
       
    }
}
반응형

'코딩테스트 준비 > 백준 C#' 카테고리의 다른 글

백준 C# - 2501  (0) 2023.07.18
백준 C# - 5086  (0) 2023.07.15
백준 C# - 1193 +) 풀이  (0) 2023.07.08
백준 C# - 2292 +) 풀이  (0) 2023.06.13
백준 C# - 2903 +) 풀이  (0) 2023.05.29

댓글