[파이썬][백준 2869번] 달팽이는 올라가고 싶다
1. 문제Permalink
[Bronze I] 달팽이는 올라가고 싶다 - 2869Permalink
성능 요약Permalink
메모리: 32976 KB, 시간: 76 ms
분류Permalink
수학(math)
문제 설명Permalink
땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.
달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.
달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.
입력Permalink
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
출력Permalink
첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.
출처: 백준, https://https://www.acmicpc.net/
2. 해결방법 시간복잡도Permalink
- 단순 코딩 O(1)
3. 문제 해결 및 코드Permalink
import math | |
A, B, V = map(int, input().split()) | |
# A는 낮에 올라가기, B는 밤에 미끌, V는 목표높이 | |
day = (V - B) / (A - B) | |
# A - B = 낮에 올라가고 미끄러진 값 | |
print(math.ceil(day)) | |
# 문제 5 1 6의 경우 6 - 1 / 5 - 1 이므로 5/4가 나온다. 이걸 올림하기위해서 | |
# ceil을 써준다. |
-
주석을 참고하면서 이해를 돕습니다.Permalink
4. 알고리즘 및 해설Permalink
- math라이브러리를 사용해서 입력 받은 값을 계산해준다.
- 이때 낮에 올라간 거리, 밤에 미끌린 거리, 목표 높이를 계산해준다.
- 목표 높이 - 미끌린 거리 / 이동 거리 - 미끌린 거리
- 이때 낮에 올라간 거리, 밤에 미끌린 거리, 목표 높이를 계산해준다.
- 최종적으로 올림해서 해당 값을 출력해준다.
- 예를 들어 5/4라는 값이 나올 경우 하루 이상이므로 이틀로 측정한다.