반응형
처음에 문제를 접근했을때 되게 쉬운 문제네? 하고 아래와 같이 풀었었다.
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++;
}
제출하고 보니 시간 초과 결과를 받았다.
문제를 다시 읽어보니 시간제한이 있었다.
반복문을 사용하지 않고 풀어보자
풀이
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 |
댓글