알고리즘

백준의 알고리즘 2869번 문제(python)

bumpy 2021. 6. 10. 03:41
728x90

https://www.acmicpc.net/problem/2869

 

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

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

www.acmicpc.net

# 2869번 문제 달팽이는 올라가고 싶다
# V길이의 나무를 A만큼 올라가고 B만큼내려오는데 다 올라가려면 며칠걸리는지 구하는 문제

A,B,V=map(int,input().split()) # A : 올라가는 길이, B : 미끄러지는 거리, V : 나무의 길이

up=A-B # 하루에 올라가는 거리
goal=V-B # 딱맞게 올라가는지 길이를 넘어서 올라가는지

if(goal%up==0): # 나머지가 0이면 딱 맞게 도착하는것
    print(int(goal/up))
else:
    print(int((goal/up))+1) # 나머지가 발생하면 조금 모자라서 1일 더 올라가야하는 것

시간제한이 있는걸 보고 공식을 이용하여 최대한 간결하게 풀어야 한다는걸 알았고 주어진 입력예시 말고도 따로 생각해서 입력예시를 넣어가며 찾은 공식은 이러하다

A-B는 하루에 올라가는 거리이다

V-B는 하루에 올라가는 거리와 나누면 나머지 유무로 딱맞게 올라가는지 조금 모자라서 1일 더 올라가야하는지 알 수 있게 해준다 그렇게 해서 나머지가 발생하면 1일을 늘려서 출력했다

 

점점 규칙과 공식 찾기에 익숙해지는거 같다 좀 더 단시간에 찾을 수 있게 노력이 필요해 보인다

728x90