이문제 또한 수학문제였다.
처음엔 이런식으로 구했으나 시간초과가 났다
int current = 0;
int count = 0;
while (current < v) {
current += a;
count++;
if (current == v) { break; }
current -= b;
}
질문하기 게시판에 가보면서 알게되었는데, 역시나 그냥 수학 문제 였다. 해석은 다음과 같다.
(v - b - 1) / (a - b) + 1
올라가야 할 거리는 v - b 로 나타내는데 하루에 갈수있는거리는 a - b 이다.
이 식으로 구하면 v - b / a - b 인데 이 식이 나머지가 있을 경우 하루 더 가야하기 때문에 + 1 을 해준다. 나머지 판별식 보다는 분자에 -1 을 해주어 애초에 나누어 떨어질수 없게 구현해준뒤 +1 을 무조건 해주는 식으로 구현하면 되겠다.[참고]