처음 문제를 봤을 때 무슨 소린지 잘 와닿지가 않았는데 이해만 하면 의외로 간단한 문제이다.
v미터의 막대기가 있는데 달팽이는 하루에 a미터 올라가고 b미터 미끄러지는 것을 반복한다. 즉 v+a-b+a-b... 이다.
주의해야 할 점은 정상에 올라간 후엔 b만큼 미끄러지지 않는다는 것이다. 즉 낮에 a미터 올라간 상태에서 이미 v미터를 넘어섰다면 b를 빼서는 안된다.
처음에는 v/(a-b)하면 되겠다고 생각했는데 (v-b)(a-b)하면 막대기 길이 v에서 b만큼을 먼저 제외하고 (a-b)로 나누므로 밤에 미끄러지는 경우를 처리 가능했다.
(v-b)(a-b)의 나머지가 존재한다면 낮에 올라가서 정상에 도달하는 경우이므로 밤에 미끄러지지 않는다. 만약 딱 나누어 떨어진다면 밤에 올라가서 정상에 도달하는 경우이다.
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int v = Integer.parseInt(st.nextToken());
if ((v-b)%(a-b)>0)
System.out.println((v-b)/(a-b)+1);
else
System.out.println((v-b)/(a-b));
}
}