알고리즘/BOJ

[C++] 백준 2869번 달팽이는 올라가고 싶다

Jay, Lee 2021. 4. 4. 19:22

이 문제는 시간제한이 있는 문제이다

처음에는 당연히 while 문을 써서 풀었는데 시간초과가 나왔다.

시간 복잡도를 생각하면 O(n)이 되어야 하니까

잘만 생각해보면 이런 알고리즘(?)으로 나타낼 수 있다.

#include <iostream>
using namespace std;

int main() {

	int a, b, v;
	cin >> a >> b >> v;

	int distance = 0;
	int day;

	if ((v - a) % (a - b) == 0) {
		day = (v - a) / (a - b);
	}
	else {
		day = (v - a) / (a - b) + 1;
	}

	cout << day + 1 << "\n";

	return 0;
}