[BOJ-4796]キャンプ(Python)
🤒 質問する
BOJ-4796キャンプ
💊 答えを出す。
上の図は大きく2つの状況に分けることができます.
1日の場合、残りの休暇日数からP日を除いた結果(休暇期間にキャンプ場が使える日数)で使える日数Lに加えます.
2つ目は2つに分けられます
2つ目の場合、残りの休暇期間中は、できるだけ多くの日数Lのキャンプ場が使えないので、結果的にVを付けて戻ってきます.
💊 説明する。
[解答1]と大差ないのですが、
解答1の1つのステップを
결과 += (V를 P로 나눈 값) * L
で解決する.次に、VをPの残存値で割って格納し、残存休暇日数Vを算出し、第2の処理を行う.
ソースコード1
import sys
def solution(L: int, P: int, V: int):
result = 0
while True:
if V - P > 0:
result += L
V -= P
else:
if V > L:
result += L
else:
result += V
return result
i = 1
while True:
L, P, V = map(int, sys.stdin.readline().split())
if V == 0: break
print(f"Case {i}: {solution(L, P, V)}")
i += 1
ソース2
import sys
def solution(L: int, P: int, V: int):
result = 0
result += (V // P) * L
carry = V % P
V -= (V // P) * P
if carry > L:
return result + L
else:
return result + V
i = 1
while True:
L, P, V = map(int, sys.stdin.readline().split())
if V == 0: break
print(f"Case {i}: {solution(L, P, V)}")
i += 1
Reference
この問題について([BOJ-4796]キャンプ(Python)), 我々は、より多くの情報をここで見つけました https://velog.io/@dogakday/BOJ-4796-캠핑-Pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol