본문 바로가기
백준알고리즘/기본 수학1

(Python/🥉1)백준 알고리즘 2869번: 달팽이는 올라가고 싶다

by windy7271 2022. 5. 13.
728x90
반응형

문제 출처:https://www.acmicpc.net/problem/2869

 

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

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

www.acmicpc.net

풀이:

import math

a,b,v = map(int,(input().split()))
print(math.ceil((v-a)/(a-b))+1)     # math.ceil 올림함수

 

a = 낮에 올라갈 수 있는 m

b = 밤에 미끄러지는 m 

 

a-b = 하루에 올라갈 수 있는 m

result(마지막 날 제외하고 올라간 횟수)

v = 높이

 

식으로 표현하면

v =< (a-b)x(result) +  a(마지막날 올라가는 m)

 

(v-a) =< (a-b)(result)

 

(v-a)/(a-b) =< result

 

마지막날 까지 포함해줘야하니까 (v-a)/(a-b) +1

소수점 나오면 소수점 만큼 실행하는게 아니라 올림해줘서 실행해줘야한다.

 

풀이2

A, B, V = map(int, input().split())

high = V - A                        #높이    
if high % (A-B) == 0:               #0으로 떨어지면 하루 더 안보내되됨
    first = int(high/(A-B))
else:
    first = int(high/(A-B) + 1)     # 0으로 안떨어지면 
print(first + 1)                    # 하루 더해줘야함

출처:https://god-gil.tistory.com/39

math 함수

 

출처:https://andamiro25.tistory.com/12

 

 

 

 

 

 

반응형

댓글