반응형
문제
땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.
달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다.
또, 정상에 올라간 후에는 미끄러지지 않는다.
달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
출력
첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.
예제 입력
2 1 5
예제 출력
4
풀이
시간 제한이 0.15초인 문제로, 반복문을 통해 해결하려 한다면
1,000,000,000 같은 입력값이 들어왔을 경우 당연히 시간 초과가 나고 말 것이다.
그렇다면 단순 계산식을 통해 해결할 수 있는 문제라는 말이다.
단순히 생각해보자면, 낮에 A만큼 올라가고 밤에 B만큼 미끄러지니 하루에 A-B 만큼 올라간다는 것을 알 수 있다.
다만, V만큼 올라가기만 하면 B만큼 내려오는 것은 계산에 포함하면 안 된다.
따라서 최대 높이에서 미끄러질 길이를 미리 빼 주면 된다.
그리고 남은 높이를 하루에 올라가는 비율로 나눠주면 끝.
import math
a,b,v = map(int,input().split())
print(math.ceil((v-b)/(a-b)))
반응형
'알고리즘 연습 > 수학, 정수론, 기하' 카테고리의 다른 글
[백준 1011] 기본수학 1 - Fly me to the Alpha Centauri (0) | 2021.05.26 |
---|---|
[백준 2839] 기본 수학 1 - 설탕 배달 (0) | 2021.05.26 |
[백준 2775] 기본 수학 1 - 부녀회장이 될테야 (0) | 2021.05.26 |
[백준 10250] 기본 수학 1 - ACM 호텔 (0) | 2021.05.24 |
[백준 1193] 기본 수학 1 - 분수찾기 (0) | 2021.05.24 |