728x90
문제
땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.
달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.
달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
출력
첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.
처음에 while문으로 day를 하나씩 증가하도록 구현하였는데 시간 초과가 떴다
day를 V / (A-B)로 한다면, 정상에 올라간 후에는 미끄러지지 않는 조건 때문에 최소 일수를 구할 수 없다.
그래서 미끄러지는 것을 제외하고 (V-B) / (A-B)로 계산해야 한다.
또한 (V-B)가 (A-B)로 나누어 떨어지는 경우는 상관 없지만, 나머지가 있는 경우는 하루를 더 올라가야 정상에 다다를 수 있다. 그러므로 나머지가 있는 경우에는 day에 1을 더하여 계산한다.
package BOJ0726;
import java.util.Scanner;
public class BOJ_2869_Snail {
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 day = 0;
day = (V - B) / (A - B);
if ((V - B) % (A - B) != 0) {
day++;
}
System.out.println(day);
}
}
728x90
'문제 풀이 > BOJ' 카테고리의 다른 글
[백준] 1065 - 한수 (자바/Java) (0) | 2022.07.26 |
---|---|
[백준] 1181 - 단어 정렬 (자바/Java) : Comparator (0) | 2022.07.26 |
[백준] 1316 - 그룹 단어 체커 (자바/Java) (0) | 2022.07.26 |
[백준] 10989 - 수 정렬하기 3 (자바/Java) : 계수 정렬(Counting Sort) (0) | 2022.07.26 |
[백준] 2750 - 수 정렬하기: (자바/Java) 선택 정렬(Selection Sort) (0) | 2022.07.26 |