프로그래밍_일반/백준
boj 2869
Spadework
2019. 12. 2. 14:42
문제
이번 문제는 달팽이 문제로 잘 알려져 있는 문제이다
달팽이가 V 높이를 올라가는게 목표이며, 낮에 A만큼 올라간 후 밤에 B 만큼 내려간다
정상에 올라간 이후에는 미끄러지지 않으며, 예외에 대한 입력은 받지 않는다
입력
: V, A, B출력
: 정상까지 올라는데 걸리는 일 수
풀이
import math
a, b, v = map(int, input().split())
print(math.ceil((v-a) / (a-b)) + 1)
문제의 풀이의 시간이 0.15초인 점과 입력 최대가 10억인 점을 보았을 때 단순 반복으로는 안된다
- 정상에 도착했을 때는 미끄러지지 않는다 : (v-a) 로 시작
- 낮에 A만큼 올라가고 밤에 B만큼 미끄러진다 : (a-b) * c
그렇기에 (v-a)까지 (a-b) * c 로 걸리는 카운트와 처음 -a를 한 카운트(+1)를 더해주면 된다