달팽이는 올라가고 싶다 성공 출처 다국어
한국어
시간제한 메모리 비율
0.15 초 (추가 시간 없음) (하단 참고) | 128 MB | 106820 | 28405 | 24011 | 27.976% |
문제
땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.
달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.
달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
출력
첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.
예제 입력 1
2 1 5
예제 출력 1
4
BufferedReader로 입력값을 받기 위해 미리 선언
공백 기준으로 나뉘어서 숫자가 들어오기 때문에 StringTokenizer 선언
값을 출력하기 위해 BufferedWriter 선언
int a = 낮에 올라간 높이
int b = 밤에 미끄러진 높이
int v = 나무의 높이
여기서 중요한 점은 마지막 부분에서
달팽이가 마지막 날 올라가면 미끄러지지 않기 때문에
단순한 게 = v로 계산하면 안 된다
올라가야 하는 날을 x 변수라고 선언하고
x는 (v-b) / (a-b)로 되는데
예시로 2가지 경우를 들면
a=2 , b=1, v=5 일 때 : (5-1) / (2-1) = 4일
즉 정확하게 나누어 떨어지면 괜찮지만
a=5, b=1, v=6 일 때 : (6-1) / (5-1) = 1.25일 => 1일
즉 나누어 떨어지지 않으면 다음날 낮에 한 번 더 올라가야 한다는 것이다
그렇기 때문에 나누어 떨어지지 않으면 일수를 하루 추가해야 한다
마지막으로 x를 bw에 담고 flush 해준다
'TIL > Algorithm' 카테고리의 다른 글
Java 백준 2775번 문제 - 부녀회장 (0) | 2021.10.16 |
---|---|
Java 백준 10250번 문제 - ACM호텔 (0) | 2021.10.15 |
Java 백준 1193번 문제 - 분수 찾기 (0) | 2021.10.13 |
Java 백준 2292번 문제 - 벌집 (0) | 2021.10.12 |
Java 백준 1712번 문제 - 손익분기점 (0) | 2021.10.11 |