728x90
반응형
문제
땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.
달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.
달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
출력
첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.
※ 도출식
※ Scanner 버전 (1) <<<< 계속되는 시간 초과로 실패
package boj;
import java.util.Scanner;
public class SnailWantToGoUp {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int A = input.nextInt(), B = input.nextInt(), V = input.nextInt();
System.out.println((int)Math.ceil((double) (V-B) / (A-B)));
}
}
※ Scanner 버전 (2) <<<< 계속되는 시간 초과로 실패
package boj;
import java.util.Scanner;
public class SnailWantToGoUp {
public static void main(String[] args) throws IOException {
Scanner input = new Scanner(System.in);
int A = input.nextInt(), B = input.nextInt(), V = input.nextInt();
int num = (V - B) /(A - B);
if((V - B) %(A - B) !=0) num++;
System.out.println(num);
}
}
※ BufferedReader버전 <<<< 성공
package boj;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class SnailWantToGoUp {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
int V = Integer.parseInt(st.nextToken());
int num = (V - B) /(A - B);
if((V - B) % (A - B) != 0) num++;
System.out.println(num);
}
}
728x90
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
[백준/java] 10250번: ACM 호텔 (0) | 2021.04.19 |
---|---|
[백준/java] 1002번: 터렛 (0) | 2021.04.19 |
[백준/java] 1193번: 분수찾기 (0) | 2021.04.16 |
[백준/java] 2292번: 벌집 (0) | 2021.04.16 |
[백준/java] 9020번: 골드바흐의 추측 - 에라스토테네스의 체 사용 (0) | 2021.04.14 |
댓글