[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번🔆
'STUDY > Algorithm' 카테고리의 다른 글
[프로그래머스_자바스크립트] Lv2. 최댓값과 최솟값 (0) | 2022.12.14 |
---|---|
[백준코딩_파이썬] 10250번_ACM 호텔 (0) | 2022.09.28 |
[백준코딩_파이썬] 1316번_그룹 단어 체커 (0) | 2022.04.03 |
[백준코딩_파이썬] 2581번_소수의 합과 최솟값 (0) | 2022.03.30 |
[백준코딩_파이썬] 2893번_설탕배달 (0) | 2022.03.28 |