【AtCoder】PythonでABC235のA問題を丁寧に読み解く

AtCoder Beginner Contest 235 - Rotate

実際の問題はこちらからご覧ください。

【AtCoder Beginner Contest 235】A – Rotate

この問題のポイント

初期値の値を整数ではなく、最初は文字列として受け取ること。

整数よりも、文字列の方が位の値を編集しやすいからです。

実装方法

  1. 入力の a, b, c を文字として受け取る
  2. それらの文字を問題文で求められている順序に置き換えて新しい文字列を作る
  3. 文字列を int型 に変換して、合計値を求める

Pythonによる解答

abc = str(input())
bca = abc[1] + abc[2] + abc[0]
cab = abc[2] + abc[0] + abc[1]

print(int(abc) + int(bca) + int(cab))

3桁の値をひとつの文字列として受け取ったが、1つずつの文字として受け取る考え方もある。

a, b, c = input()
abc = a + b + c
bca = b + c + a
cab = c + a + b
ans = int(abc) + int(bca) + int(cab)
print(ans)

また、入力を整数 n として受け取った場合でも、n % 10, n / 10 % 10の演算により、各桁の数字を得ることもできる。

n = int(input())      # 123
a = str(n / 100)      # 1
b = str(n / 10 % 10)  # 2
c = str(n % 10)       # 3