Algorithm/BaekJoon
백준 21.12.06. 2869번 - 달팽이는 올라가고 싶다
HappyFrog
2021. 12. 6. 01:36
import sys
import math
a, b, v = map(int, sys.stdin.readline().split())
day = (v - b) / (a - b)
print (math.ceil(day))
처음에는 while 반복문으로 작성했다가 시간 초과가 나와서 틀렸습니다.
- 우선 달팽이는 정상에 도달하면 더 이상 미끄러지지 않기 때문에 막대기의 높이(v) - 미끄러지는 높이(b)를 해주었습니다.
- 이러면 달팽이가 정상에 도착했을 때 더 이상 미끄러지지 않습니다.
- 그 후에 (v - b)를 하루 동안 올라갈 수 있는 높이(a - b)로 나누어주면 올라가는데 소요되는 날들이 계산됩니다.
- 두 번째로는 구해진 날들은 소수점이 존재하는 형태로 출력되는데, 이 것을 int로 형변환시킨다면 소수점을 버리게 되지만, 4.2일이 소요되는 것은 5일이 소요된 것과 같기 때문에 올림 처리를 해주어야 합니다.
- 올림 처리는 math모듈을 임포트하여 ceil이라는 기능을 사용해주면 됩니다.
---
반복문으로 하면 오래 걸려서 한 번에 몫을 도출해내는 식을 만들면 됨