AtCoder Beginner Contest

【pythonでABC187を解説】A - Large Digits

問題概要

問題ページ

問題文

整数 \(n\) に対して、 \(n\) を十進法で表したときの各桁の和を \(S(n)\) で表すことにします。 例えば、\(S(123) = 1 + 2 + 3 = 6\) です。

\(2\) つの \(3\) 桁の整数 \(A, B\) が与えられます。\(S(A)\) と \(S(B)\) のうち大きい方の値を求めてください。

制約

  • 入力は全て整数
  • \(100 \le A, B \le 999\)

問題の考察

入力の際に数値ではなく文字列として読み込むとコーディングがしやすい。

for文で各桁の文字列をint型へキャストして数値の各桁の合計値を求めても良い。

ACコードでは各桁の文字列をint型へキャストした配列を作成してsum()で合計値を求めている。

たびすけ
どちらの書き方でも大丈夫だけACコードのような書き方ができるようになると全体的にコードがスッキリするかも!

ACコード

import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    a, b = list(map(str, str(input().rstrip('\n')).split()))
    a = sum([int(v) for v in a])
    b = sum([int(v) for v in b])
    print(max(a, b))


if __name__ == '__main__':
    solve()

-AtCoder Beginner Contest
-