[백준] 달팽이는 올라가고 싶다 (java) Max_Min
달팽이는 올라가고 싶다 (백준> 2869 > Max_Min)
문제설명
땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.
달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.
달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
출력
첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.
예제 입력 1
2 1 5
예제 출력 1
4
풀이
package Max_Min;
import java.util.*;
public class beak_달팽이는올라가고싶다 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int v = sc.nextInt();
int num = 0; double day = 0;
day = (v-b)/ (a-b);
if((v-b)%(a-b) !=0)
day++;
System.out.println(day);
// int num = 0;
// while(num <v) {
// day++;
//
// num = num + a;
// if(num >= v)
// break;
//
// num = num - b;
// }
}
}
후기 (30min)
for문을 돌면 시간 초과가 뜨는 문제이다! 예전에 풀었을 때 for로 풀어서 실패했었는데, 바로 day를 구하고 day를 +1 해줘야하는지 말아야하는지만 생각해주면 됐다!
tip
-
는 쉽게 안풀렸다…ㅎ 수학 식 같은 문제는 생각하면 할 수록 어렵다.. 으아
[참고한 링크](https://yahohococo.tistory.com/28)