STUDY/Algorithm

[백준코딩_파이썬] 2869번_달팽이는 올라가고싶다

ez1n 2022. 9. 26. 21:18

 

[Python_달팽이는 올라가고싶다]

 


 

<STUDY>

 

📢 문제 📢

 

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

 

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

또, 정상에 올라간 후에는 미끄러지지 않는다.

 

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

 

 

❗아이디어

 

   - 달팽이가 올라가야 하는 높이를 하루에 올라가는 높이로 나눈 나머지를 구한다.

 


<전체 코드>

import sys

A, B, V = map(int, sys.stdin.readline().split())

if (V-B) % (A-B) == 0:
    print((V-B) // (A-B))
elif (V-B) % (A-B) < A-B:
    print((V-B) // (A-B) + 1)

 


 

<코드 설명>

 

☝달팽이가 올라가야 하는 높이, 하루에 올라가는 높이 구하기

 

   - 올라가야하는 전체 높이 : V - B

   달팽이가 올라가야 하는 높이는 V 이지만 정상에 올라간 뒤에는 미끄러지지 않는다.

   그러므로 마지막 날 밤에 미끄러지는 B만큼을 빼주어야한다.

   단순히 V를 이용한다면 다음날 낮에 정상에 올라가도 B만큼 미끄러져 다시 올라가야하는 상황이 생길 수 있기 때문에 정답을 구할 수 없다.

   - 하루에 올라가는 높이 : A - B

 

 

✌ 나머지 구하기

if (V-B) % (A-B) == 0:
    print((V-B) // (A-B))
elif (V-B) % (A-B) > 0:
    print((V-B) // (A-B) + 1)

   - 나머지가 0인 경우 다음날 올라갈 필요가 없으므로 몫이 정답

   - 나머지가 0보다 큰 경우 다음날 올라가야 하므로 몫에 1을 더한 값이 정답

 


🔆백준 코딩 2869번🔆

 

👉ez1n github 구경하기👈

 

 

ez1n - Overview

Study -ing. ez1n has 10 repositories available. Follow their code on GitHub.

github.com