코딩/백준

[백준] 2869번 달팽이는 올라가고 싶다 파이썬 풀이 코딩테스트 연습 기본 수학1 브론즈1

thisisjade 2022. 1. 8. 11:36
728x90

문제

 

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

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

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

 

입력

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

 

출력

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

 

예제 입력 1

2 1 5

 

예제 출력 1

4

 

예제 입력 2

5 1 6

 

예제 출력 2

2

 

예제 입력 3

100 99 1000000000

 

예제 출력 3

999999901

 

 

문제 이해는 어렵지 않았지만... 문제 해결하는게 다른거 보면서 하니까 30분정도 걸린 것같네요

 

A, B, V = map(int,input().split())
cnt = 0
while True:
    if V > A:
        V = V -(A-B)
        cnt += 1
    else:
        cnt += 1
        print(cnt)
        break

답은 맞지만 시간초과에 걸려서 코드를 다시 짜야겠다고 생각하고 아래의 코드를 작성했습니다.

 

A, B, V = map(int,input().split())
import math
print(math.ceil((V-A)/(A-B))+1)

math모듈을 가져와서 올림처리를 해주니 간단하게 풀렸습니다!

 

모듈을 써도 되나 싶어서 안쓰는 방법으로 몇번해보다가 썼습니다

백준 사이트에서 모듈 써도 답인정을 해줬나..? 자꾸 헷갈려서 좀 오래 걸렸네요 ㅋㅋㅋㅋ

 

 

728x90