高橋君の体力A・攻撃力Bのモンスターと、青木君の体力C・攻撃力Dのモンスターを戦わせたときに高橋君が勝つかどうかを求める問題です。
提出
a, b, c, d = map(int, input().split())
while a > 0 and c > 0:
c -= b
a -= d
if c <= 0:
print("Yes")
else:
print("No")
while文を使って、どちらか(もしくは両方)の体力が0になるまで、攻撃で体力を減らしていきます。
その後に、どちらが勝ったのかを判定します。
高橋君のほうが先に攻撃するため、青木君のモンスターの体力Cが0以下であれば、高橋君の勝ちになります。
split()メソッド
split()メソッドは、区切り文字を指定して、文字列を分割します。
区切り文字を指定しない場合、空白、タブ、改行で分割されます。
str.split("区切り文字")
map()関数
map()関数は、イテラブル(リストやタプルなど)の各要素に関数の処理を適用します。
map(関数、イテラブル)
一回ずつ攻撃する方法のほか、どちらの体力が先に減るのかを計算で求めることもできます。
提出
a, b, c, d = map(int, input().split())
if -(-c//b) <= -(-a//d):
print("Yes")
else:
print("No")
それぞれのモンスターが何回の攻撃で体力0以下になるかどうかを調べます。
攻撃力は毎回同じなので、「体力÷攻撃力」の切り上げでその回数が分かります。
切り捨てだと、攻撃力以下の体力が残っている可能性があります。
//は切り捨て除算です。Python3では、「-(-c//b) 」のように書くと切り上げになります。