백준 2869번
https://www.acmicpc.net/problem/2869
2869번: 달팽이는 올라가고 싶다
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
www.acmicpc.net
1. 문제
땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.
달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.
달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.
2. 내가 작성한 알고리즘
a,b,v=map(int,input().split())
if (v-b)%(a-b)==0:
print((v-b)//(a-b))
else:
print(((v-b)//(a-b))+1)
3. 이번 알고리즘을 통해 배운 점
공식은 굉장히 간단하다. 하루 동안 달팽이가 올라가는 높이는 a-b이다. 그리고 도달하고 하는 높이는 v 같지만
높이에 도달하면 움직이지 않으므로 높이는 v-b이다. 그리하여 공식은 (v-b)//(a-b) 같지만 만약 1.4, 1.6 같은 소수범위 가 생길 수 있다. 1.4와 1.6 같이 소수가 생긴다는 것은 2일이 걸린다는 의미이므로 v-b를 a-b로 나눈 나머지가 있다면 소수이므로 +1을 하여 처리한다.
'Python > 백준 알고리즘 (파이썬)' 카테고리의 다른 글
브루트 포스 practice 03_ 덩치 (0) | 2021.08.11 |
---|---|
스택 practice 01 _ 균형잡힌 세상 (0) | 2021.08.09 |
기본 수학 practice 04_ ACM 호텔 (0) | 2021.07.21 |
기본 수학 practice 03_분수찾기 (0) | 2021.07.20 |
1차원 배열 practice 04_나머지 (0) | 2021.07.16 |