본문 바로가기
IT/알고리즘

1일 N알고리즘 - #17

by Sungjun_ 2020. 5. 19.

문제

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

 

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

문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 ��

www.acmicpc.net

문제는 위 사이트를 참고해주세요

 


풀이

import math
A, B, V = map(int, input().split())
temp = V - A
inc = A - B
day = math.ceil(temp / inc)
print(day + 1)

 

A = 낮에 올라가는 길이, B= 저녁에 내려오는 길이,  V는 정상의 높이입니다.

A(낮) B(저녁) V(높이) 걸리는 DAY TEMP(V-A) INC(A-B) DAY(TEMP/INC)
2 1 5 4 3 1 3
3 1 8 4 5 2 2.5
3 2 8 6 5 1 5
4 1 8 3 4 3 1.33333...
5 3 8 3 3 2 1.5
6 3 9 2 3 3 1

먼저 V-A를 해서 처음 낮에 올라갔을 때 높이와, 정상 높이를 빼줍니다.

그러면 현재 높이의 차를 알 수 있습니다.

그리고 하루 동안 움직이는 거리는 A-B의 값이기 때문에

V-A / A-B를 하면 첫 날에서 며칠이 지나야 정상에 오르는지 알 수 있습니다.

그 값은 첫날이 포함이 안돼있기 때문에 +1 해주면 답이 나옵니다.

 

위 표를 보시면 실제로 걸리는 일 수는 (TEMP / INC) + 1 한 것과 같습니다.

근데 소수점이 나오면 계산이 성립하지 않기 때문에 math.ceil을 사용해 올림을 해줍니다.

그러면 실제로 걸리는 일 수가 나옵니다.

 


결과

결과 화면

'IT > 알고리즘' 카테고리의 다른 글

1일 N알고리즘 - # 19  (0) 2020.05.20
1일 N알고리즘 - #18  (0) 2020.05.20
1일 N알고리즘 - #16  (0) 2020.05.18
1일 N알고리즘 - #15  (0) 2020.05.18
1일 N알고리즘 - #14  (0) 2020.05.17

댓글