땅 위에 달팽이가 있다.
이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.
달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.
달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다.
(1 ≤ B < A ≤ V ≤ 1,000,000,000)
첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠
이 걸리는지 출력한다.
2 1 5
4
5 1 6
2
100 99 1000000000
999999901
Contest > Croatian Open Competition in Informatics > COCI 2010/2011 > Contest #2 1번
-문제를 번역한 사람: baekjoon
-데이터를 추가한 사람: CHULMING, jm0707, tong39
-문제의 오타를 찾은 사람: hellogaon
-빠진 조건을 찾은 사람: jh05013
import java.util.Scanner;
public class Code2869 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
double noon=scanner.nextInt();
double night=scanner.nextInt();
double height=scanner.nextInt();
// int now=0;
int day=1;
double calc=(height-noon)/(noon-night);
//
// while(now<height) {
// now=now+noon;
// if(now>=height) {
// break;
// }
// now=now-night;
// day++;
// }
//
// System.out.println(day);
if(calc%1==0.0) {
day=day+(int)calc;
}
else {
day=day+(int)calc+1;
}
System.out.println(day);
}
}
원래는 while
문으로 반복했는데, 시간초과가 떴다.
그래서, 나눗셈을 이용하여 해결을 해보았다.
day=1;
day=day+(V-A)/(A-B)
만약 (V-A)/(A-B)가 분수이면, +1 을 더하고
그렇지 않으면 더하지 않는 것이다.