본문 바로가기

알고리즘/python

[python/파이썬] 백준 2869 달팽이는 올라가고 싶다

반응형

[문제 출처]

https://www.acmicpc.net/problem/2869

 

2869번: 달팽이는 올라가고 싶다

첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)

www.acmicpc.net

 

 

[문제 풀이]

 

v미터인 나무막대를 달팽이가 며칠 만에 오를 수 있는지 계산하는 문제이다.

 

달팽이는 낮에 a미터 올라가며, 밤에는 b미터 미끄러진다. 즉 하루에 a-b미터 올라갈 수 있다.

 

하지만 '정상에 올라간 후에는 미끄러지지 않는다.' 라는 조건이 붙어있기 때문에 a-b미터로 계산을 하면 안 된다.

 

올라가야 할 높이가 a미터보다 작거나 같을 때 달팽이는 정상에 도달할 수 있다. 따라서 a미터만큼 v에서 빼준 후에 하루 단위로 계산해주었다.(a-b미터)

 

만일 a미터를 뺀 높이를 a-b로 나눴을 때 딱 떨어지지 않는다면, 달팽이는 a미터를 올라가는 것 이외에도 하루 더 소요되므로두 가지 경우로 구분해서 계산한다.

#2869
a, b, v = map(int, input().split())

v -= a
if v % (a-b) == 0:
  day = v//(a-b) + 1
else:
  day = v//(a-b) + 2

print(day)

 

반응형