반응형
https://www.acmicpc.net/problem/2869
- 문제
- 문제 풀이
백준 2869번 달팽이는 올라가고 싶다는 실버 5 난이도의 수학 문제이다. 이 문제에서는 막대의 높이 V, 달팽이가 올라가는 높이 A, 그리고 내려오는 높이 B가 주어진다. 낮에 A미터 올라가고 밤에 B미터 내려온다. 이때, 막대를 모두 올라가려면 며칠이 걸리는지를 출력하면 되는 문제이다.
우선 이 문제는 다음과 같은 공식으로 쓸 수 있다.
N(A - B) + A = V
즉, 이 문제는 N일 동안 N(A- B)만큼 올라가고 마지막 날에 A미터 올라가면 총 V미터 올라온 게 되는 것이다. 따라서, N을 구하려면 다음과 같이 공식을 조정할 수 있다.
N = (V - A) / (A - B)
하지만 마지막 날에 A미터 올라가야 하니 총 걸리는 날은 N + 1이 되겠다.
이 문제에서 또 주의해야 할 점이 바로 (V - A) / (A - B)가 1 미만일 경우이다. 이때는 Math.ceil() 함수를 이용해서 올림 시켜준다.
자세한 코드는 밑에 있다.
- 코드
import java.io.*;
import java.util.*;
public class Main {
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 x = (int)Math.ceil((double)(v-a) / (double)(a-b));
System.out.print(x+1);
}
}
반응형
'백준' 카테고리의 다른 글
[백준] 9012번 : 괄호 – JAVA [자바] (0) | 2022.07.11 |
---|---|
[백준] 2941번 : 크로아티아 알파벳 – JAVA [자바] (0) | 2022.07.11 |
[백준] 10250번 : ACM 호텔 – JAVA [자바] (0) | 2022.07.11 |
[백준] 2292번 : 벌집 – JAVA [자바] (0) | 2022.07.10 |
[백준] 2751번 : 수 정렬하기 2 – JAVA [자바] (0) | 2022.07.10 |
댓글