[백준] 달팽이는 올라가고 싶다 (java) Max_Min

2020-01-27

달팽이는 올라가고 싶다 (백준> 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

  1. 는 쉽게 안풀렸다…ㅎ 수학 식 같은 문제는 생각하면 할 수록 어렵다.. 으아

     [참고한 링크](https://yahohococo.tistory.com/28)