간단한 일차부등식 문제이다.
int[] abv = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
int a = abv[0];
int b = abv[1];
int v = abv[2];
int day = (int)Math.Ceiling((double)(v - b) / (a - b));
Console.Write(day);
구하고자 하는 답을 x로 설정한다면 아래 식처럼 표현할 수 있다.
여기서 a, b, v는 문제에서 설명하였다.
이 문제의 포인트는 두 가지인데, 하나는 달팽이의 이동 거리가 (a - b) * x가 아니라는 점이다.
왜냐하면, 달팽이가 미끄러지는 횟수는 올라가는 횟수보다 항상 한 번이 적기 때문이다.
달팽이는 정상에 오르기 전까지는 계속 올라가고 미끄러지고를 반복하지만 한번 정상에 오르고나면 미끄러지지 않는다.
다른 하나는 일일이 반복문으로 풀 시간이 없다는 점이다.
시간 제한이 0.15초이므로 반복문이 아닌 수식으로 풀어야 시간 초과를 당하지 않을 것이다.
이에 주의하며 문제를 풀면 된다. 참고로 a - b는 0이나 음수가 될 수 없으므로 따로 체크하지 않아도 괜찮다.
'백준 > 단계별' 카테고리의 다른 글
백준 2839 C#) 설탕 배달 (0) | 2022.05.06 |
---|---|
백준 10250 C#) ACM 호텔 (0) | 2022.05.05 |
백준 2292 C#) 벌집 (0) | 2022.04.27 |
백준 1316 C#) 그룹 단어 체커 (0) | 2022.04.27 |
백준 2941 C#) 크로아티아 알파벳 (0) | 2022.04.27 |
댓글