땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.
달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.
달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.
나는 처음에 while문을 사용하여 풀었는데 시간초과가 났다.
그래서 살짝 힌트를 봤는데 수식으로 풀어야 했었다. 그래서 다시 생각을 해서 아래와 같이 작성하였다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int v = sc.nextInt();
if((v-a)%(a-b)!=0)
System.out.println((v-a)/(a-b)+2);
else if ((v-a)%(a-b)==0)
System.out.println((v-a)/(a-b)+1);
}
}
사실 이리저리 끄적이다가 발견하게 되어서 이런식으로 풀었다는 것만 알아두길...