AtCoder Beginner Contest

【pythonでABC153を解説】A - Serval vs Monster

問題概要

問題ページ

問題文

サーバルはモンスターと戦っています。

モンスターの体力は \(H\) です。

サーバルが攻撃を \(1\) 回行うとモンスターの体力を \(A\) 減らすことができます。
攻撃以外の方法でモンスターの体力を減らすことはできません。

モンスターの体力を \(0\) 以下にすればサーバルの勝ちです。

サーバルがモンスターに勝つために必要な攻撃の回数を求めてください。

制約

  • \(1 \leq H \leq 10^4\)
  • \(1 \leq A \leq 10^4\)
  • 入力中のすべての値は整数である。

問題の考察

\(H\)が\(A\)で割り切れる場合は計算結果をそのまま出力すればいいが、割り切れない場合には計算結果の切り上げが必要になる。

ライブラリを使う方法もあるが\((H+A-1) \div A\)(ただし\(\div A\)は切り捨て)でも同じ結果になる。

ライブラリを使うか\((H+A-1) \div A\)とするかはコーディングしやすい方で良いと思う。

たびすけ
端数の切り上げ、切り捨ては頻出なので覚えておきましょう!

ACコード

import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    h, a = list(map(int, input().rstrip('\n').split()))
    print((h + a - 1) // a)


if __name__ == '__main__':
    solve()

-AtCoder Beginner Contest
-