알고리즘/문제풀이
2869 - 달팽이는 올라가고 싶다(백준)
WhNi
2024. 6. 4. 09:02
https://www.acmicpc.net/problem/2869
//while (height < v)
//{
// height += a;
// if (height == v)
// {
// answer++;
// break;
// }
// height -= b;
// answer++;
//}
이렇게 해도 답은 나오나, 큰 수에 있어서 시간 초과가 뜨게 됨.
#include <iostream>
using namespace std;
int main()
{
int a, b, v;
cin >> a >> b >> v;
// 목표하는 높이
int targetheight = v - a;
// 하루에 올라가는 높이
int dailyclimb = a - b;
// 나머지가 생기면 하루가 더 추가
int days =1 + targetheight / dailyclimb + (targetheight % dailyclimb != 0 ? 1 : 0);
cout << days << "\n";
return 0;
};
생각나는대로 처음에는 푼 방법이 있으나, 시간초과가 뜨게 되어서 다르게 생각하게 되었다.
목표하는 높이와, 하루 올라가는 높이를 구하고, 계산했을때 나머지가 생기면 하루가 더 추가되는 식으로 생각했다.