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

2021. 4. 22. 00:18Algorithm/BOJ

반응형

www.acmicpc.net/problem/2869

 

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

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

www.acmicpc.net

 

이 문제는 처음에 아래와 같이 반복문으로 생각하고 풀었다.

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

sum =0
count=0
while True:
    count += 1
    sum += a
    if sum>=v:
        break
    sum -= b

print(count)

 

 

하지만 시간초과에 걸릴 것 같음을 암시했고 역시 시간초과가 나왔다.

 

다른 방법을 생각해봤다. 

 

import math
a,b,v = map(int,input().split())
count = (v-b)/(a-b)
print(math.ceil(count))

 

나눗셈으로 풀면 된다고 생각이 들었다.

 

다만 나누기를 하되 (v-b)/(a-b) 에서 (v-b)에서 -b 해주었는데 그 이유는 정상에 올라갔을 때 새벽에 아래로 미끄러지는 것을 방지하기 위함이다. 

 

그리고 math 모듈(라이브러리)을 사용했는데 올림하기 위함이다.

4.0은 4일이 걸리는 것이지만 4.2.는 5일이 걸리는 것이기 때문에 올림처리를 해주었다. 

 

 

reddb.tistory.com/83

 

(PYTHON)파이썬 math 라이브러리

(PYTHON)파이썬 math 라이브러리 math 라이브러리 활용방법 import math #math 모듈(라이브러리)를 임포트합니다 math.수학함수(파라미터) #math 모듈(라이브러리)에 포함된 함수를 사용합니다. 자릿수를 조

reddb.tistory.com

yoonsang-it.tistory.com/9

반응형