[BOJ]2869:カタツムリが行きたがっている
🔒 例
>> 2 1 5
4
>> 5 1 6
2
>> 100 99 1000000000
999999901
🔧 に答える
1. a, b, v = map(int, sys.stdin.readline().split())
2. 반복문 : h = 현재 높이
2.1 days += 1, h += a
2.2 if v <= h then break
2.3 h -= b
3. v > (a-b)*n 가 성립하는 가장 큰 n 찾기
3.1 (v-a)지점 == 최종 도달 전 날
🔑 答案用紙
### 제시된 풀이로 작성한 코드
import sys
a, b, v = map(int, sys.stdin.readline().split())
n = (v - a) // (a - b)
days = n
h = (a-b)*n
while True:
days += 1
h += a
if v <= h:
print(days)
break
h -= b
############################################################
### 다른 방법으로 풀이한 코드
# (v-b) // (a-b) : 최소한의 day 수
# 잔여블록 < (a-b) : 당일 +a일 때 도달했을 것
import sys
A, B, V = map(int, sys.stdin.readline().split())
day = (V-B)/(A-B)
# 나누어 떨어진다 == 당일 최종 도달
if day == int(day):
day = int(day)
# 나누어 떨어지지 않는다 == 잔여 존재 == 다음날이 최종 도달하는 날
else:
day = int(day)+1
print(day)
💡 コンセプト
Reference
この問題について([BOJ]2869:カタツムリが行きたがっている), 我々は、より多くの情報をここで見つけました https://velog.io/@ohhj1999/BOJ-2869テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol