728x90
달팽이가 입력된 v 만큼의 거리를 하루동안 a-b 만큼 이동할 때 걸리는 총 시간을 구하는 문제입니다.
import sys
a, b, v = map(int, sys.stdin.readline().split())
일단 시간을 최대한 줄여주기 위해 import sys를 사용했습니다 (안해도 상관X)
이 문제의 핵심은 경우의 수를 일일이 따져주는 것이 아니라
v <= (a - b)*n + a (n: 걸린 일 수)
를 n에 대하여 정리해주는 것 입니다.
해당 식을 n에 대하여 정리해주면 다음과 같이 됩니다.
n = (v-a)/(a-b) + 1
여기서 마지막 +1 은 움직이는 첫날도 하루로 세어주기 때문입니다.
그 이후 위의 식에 대한 경우를 두가지만 따져주면 됩니다.
1. 남은 길이가 딱 a만큼이라 b만큼 미끌어지기 전 도착하는 경우
2. 남은 길이가 a보다 짧아 올라가는 도중에 도착하는 경우
이를 코드로 표현하면 다음과 같이 됩니다.
if n % int(n) == 0:
print(int(n))
else:
print(int(n) + 1)
[전체 코드]
import sys
a, b, v = map(int, sys.stdin.readline().split())
n = (v-a)/(a-b) + 1
if n % int(n) == 0:
print(int(n))
else:
print(int(n) + 1)
728x90