본문 바로가기
코딩테스트/파이썬

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

by 커피는아아 2021. 3. 8.
반응형
# 문제
# 땅 위에 달팽이가 있다. 이 달팽이는 높이가 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

x = 0
while v > x:
	if a == v:
		break
	if x + a >= v:
		break
	else:
		x = x + a - b
		day += 1

##############################################

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

day = 1

v = v - a

if v > 0:
    day += v % (a-b) == 0 and v // (a-b) or v // (a-b) + 1
print(day)
  • 달팽이의 위치를 0으로 잡고 반복문을 돌면서 이동하는 것으로 로직을 생각하였으나 시간 초과가 되었다. (제한 0.15)]
  • 0.15초면 반복문 없이도 풀어야 한다는 것을 착안하여 반복문 없이 로직을 구현하였다.