https://www.acmicpc.net/problem/2869
어렸을때 봤던 코믹 메이플스토리가 생각나는 문제였다.
그냥 반복문으로 풀수도 있는 문제지만, 시간 제한이 있었기 때문에 규칙을 찾아 풀었다.
1) A - B == 1 이라면, V - B일이 걸렸다. (예제3)
2) V - A == 1이라면, 2일이 걸린다.
3) 나머지 경우에는 V에 마지막에 하루 최대(미끄러지지 않는 날)로 올라갈수 있는 A일을 빼고,
(A - B)를 나누고 (미끄러진 날), 나머지가 있다면 하루를 더 더해준다.
using System;
namespace _2869
{
class Program
{
static void Main()
{
StreamReader sr = new StreamReader(Console.OpenStandardInput());
StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());
string[] str = sr.ReadLine().Split(' ');
int a = int.Parse(str[0]);
int b = int.Parse(str[1]);
int v = int.Parse(str[2]);
int day = 0;
if (a - b == 1) day = v - b;
else if (v - a == 1) day = 2;
else
{
v -= a;
day++;
while (v > 0)
{
day += v / (a - b);
v = v % (a - b);
if (v != 0)
{
v = 0;
day++;
}
}
}
sw.WriteLine(day);
sr.Close();
sw.Flush();
sw.Close();
}
}
}
'알고리즘 > 백준 BOJ' 카테고리의 다른 글
[ BOJ/C# ] 1676 팩토리얼 0의 개수 (0) | 2023.09.03 |
---|---|
[ BOJ/C# ] 1546 평균 (0) | 2023.09.01 |
[ BOJ/C# ] 10989 수 정렬하기 3 (0) | 2023.08.30 |
[ BOJ/C# ] 21921 블로그 (0) | 2023.08.29 |
[ BOJ/C# ] 1940 주몽 (0) | 2023.08.28 |