https://www.acmicpc.net/problem/2869
알고리즘 분류
수학
문제
땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.
달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.
달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
출력
첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.
Code
A, B, V = map(int,input().split())
print(-(-(V - A) // (A - B)) + 1)
문제풀이
A, B, V를 정수형으로 입력받는다.
A, B, V와 달팽이가 나무 막대를 모두 올라가는데 걸리는 일 수간의 관계를 수식으로 표현한다.
- 달팽이는 하루에 A - B 만큼 올라간다.
- 달팽이가 A만큼 움직여 나무 막대를 모두 올라간 경우, 그 다음 B만큼 내려오는 것은 고려하지 않는다.
- 달팽이가 V - A 지점에 도달한다고 가정하면 그 다음 A만큼 움직였을 때 반드시 나무 막대기를 모두 올라간다.
- 따라서 V - A를 A - B로 나누고 올림 하면 V - A 지점에 도달하는 일 수를 얻을 수 있다.
- 하루를 더하면 나무 막대기를 모두 올라가는데 걸리는 일 수를 구할 수 있다.
수식을 출력한다.
'Koala - 15기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/Python] 2839번: 설탕 배달 (0) | 2024.07.08 |
---|---|
[백준/Python] 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰 (0) | 2024.07.07 |
[백준/Python] 4458번: 첫 글자를 대문자로 (0) | 2024.07.07 |
[백준/Python] 3046번: R2 (0) | 2024.07.07 |
[백준/python] 15963번 : CASIO (0) | 2024.07.07 |