최대 1 분 소요

1. 문제Permalink

[Bronze I] 달팽이는 올라가고 싶다 - 2869Permalink

문제 링크

성능 요약Permalink

메모리: 32976 KB, 시간: 76 ms

분류Permalink

수학(math)

문제 설명Permalink

땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.

달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.

달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.

입력Permalink

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

출력Permalink

첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.

출처: 백준, https://https://www.acmicpc.net/

2. 해결방법 시간복잡도Permalink

  1. 단순 코딩 O(1)

3. 문제 해결 및 코드Permalink


import math
A, B, V = map(int, input().split())
# A는 낮에 올라가기, B는 밤에 미끌, V는 목표높이
day = (V - B) / (A - B)
# A - B = 낮에 올라가고 미끄러진 값
print(math.ceil(day))
# 문제 5 1 6의 경우 6 - 1 / 5 - 1 이므로 5/4가 나온다. 이걸 올림하기위해서
# ceil을 써준다.
view raw 2869.py hosted with ❤ by GitHub
  • 주석을 참고하면서 이해를 돕습니다.Permalink

4. 알고리즘 및 해설Permalink

  1. math라이브러리를 사용해서 입력 받은 값을 계산해준다.
    • 이때 낮에 올라간 거리, 밤에 미끌린 거리, 목표 높이를 계산해준다.
      • 목표 높이 - 미끌린 거리 / 이동 거리 - 미끌린 거리
  2. 최종적으로 올림해서 해당 값을 출력해준다.
    • 예를 들어 5/4라는 값이 나올 경우 하루 이상이므로 이틀로 측정한다.