백준(BOJ) - 달팽이는 올라가고 싶다(2869번) - 파이썬(python)
2023. 2. 2. 19:10ㆍ코딩테스트/백준(BOJ)
문제
땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.
달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.
달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
출력
첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.
하루에 a만큼 올라가고 b만큼 미끄러진다. 총 올라가야할 높이는 v
import sys
input=sys.stdin.readline
a,b,v=map(int,input().rstrip().split())
# 첫 날 올라가는 높이: a
# 올라가야하는 높이: v
# 다음날 올라가는 높이: a * 2
# 올라가야하는 높이: v+b
day=1
res=v
while 1:
if a*day>=res:
print(day)
break
else:
res+=b
day+=1
a,b,v가 10억까지의 수이므로 반복문으로 풀면 당연하게 시간초과가 난다.
import sys
input=sys.stdin.readline
a,b,v=map(int,input().rstrip().split())
# 매일 올라가는 높이: a
# 매일 떨어지는 높이: b
# 정상 도착후에는 미끄러지지 않으므로
# (정상높이 - b) 만큼 도착하는 날을 구하면된다
day=(v-b)//(a-b)
# 나누어 떨어지지 않으면 하루 더 추가
if (v-b)%(a-b)!=0:
day+=1
print(day)
728x90
'코딩테스트 > 백준(BOJ)' 카테고리의 다른 글
백준(BOJ) - 부녀회장이 될테야(2775번) - 파이썬(python) (0) | 2023.02.03 |
---|---|
백준(BOJ) - ACM 호텔(10250번) - 파이썬(python) (1) | 2023.02.02 |
백준(BOJ) - 분수찾기(1193번) - 파이썬(python) (0) | 2023.02.01 |
백준(BOJ) - 별 찍기 - 1, 2, 3, 4, 5, 6(2438번, 2439번, 2440번, 2441번, 2442번, 2443번 ) - 파이썬(python) (0) | 2023.02.01 |
백준(BOJ) - 하노이 탑 이동 순서(11729번) - 파이썬(python) (0) | 2023.02.01 |