시간 제한 | 메모리 제한 |
0.15 초 (추가 시간 없음) | 128 MB |
문제
땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.
달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.
달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
출력
첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.
예제 입력 1 |
예제 출력 1 |
2 1 5 | 4 |
풀이
1. 식 세우기
Ax -B(x-1) >= V 일 때, x의 값
B에 x-1을 하는 이유는 한 번 정상에 올라가면 내려오지 않는다.
▼ 시간초과 코드 - 반복문으로 설계한 코드
...더보기
반복문 day값을 1씩 올리면서 찾으면, 2 1 1000000 값을 입력했을 때, 시간초과된다.
시간 제한은 0.15초 이다.
import sys
A,B,V = map(int,sys.stdin.readline().rstrip().split())
day = 1
while True:
if (A-B)*day + B >= V: print(day); break
day += 1
2. x를 좌항에 남기고 x에 대한 부등식으로 수정
x >= (V-B)/(A-B) 을 만족하는 x의 값
파이썬의 math.ceil 함수를 이용해서 나눈 결과를 올림하여 x값을 정한다.
import sys,math
A,B,V = map(int,sys.stdin.readline().rstrip().split())
print(math.ceil((V-B)/(A-B)))
'Algorithm' 카테고리의 다른 글
[백준] #6064 카잉 달력 (Python3) (0) | 2019.10.31 |
---|---|
[백준] #2775 부녀회장이 될테야 (Python3) (0) | 2019.10.31 |
[백준] #10250 ACM 호텔 (Python3) (0) | 2019.10.15 |