조금씩 꾸준히 완성을 향해

[Algorithm] 백준 2869 달팽이는 올라가고 싶다 with Python 본문

DataStructure & Algorithm/문제풀이

[Algorithm] 백준 2869 달팽이는 올라가고 싶다 with Python

all_sound 2022. 9. 28. 13:51

문제

땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.

달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.

달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.

입력

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

출력

첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.

예제 입력 1 복사

2 1 5

예제 출력 1 복사

4

내가 짠 코드

import math
a, b, v = map(int, input().split())

day = (v-a)/(a-b)+1
print(math.ceil(day))

꽤나 고심했던 수학 연산문제. 

처음엔 자동적으로 while문을 돌리면 되겠다고 생각하고 짰는데 시간초과가 떴다. 

그냥 계산으로 푸는 문제라는 가이드를 보고 다시 시도했다. 

 

조건 대로 일단 생각할 수 있는 식을 짜고 day를 기준으로 우항으로 밀었다.

그리고 날짜의 값은 실수일 수 없기 때문에, day가 실수인 경우에는 올림해 주었다. 

 

 

 

 

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

 

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

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

www.acmicpc.net