はじめに
競技プログラミングの練習問題で、私が実装したソースコードと練習問題の回答を比較して、もやっとしたので、記事にしました。
練習問題
整数 L、u、a、b、v が与えられます。整数 L + 1、u + 1、a + 1、b + 1、v + 1 を改行区切りで出力してください。
入力される値
・整数 L、u、a、b、v が3行で与えられます。
L
u a b
v
入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力
L + 1、u + 1、a + 1、b + 1、v + 1 を改行区切りで 5 行で出力してください。
また、末尾に改行を入れ、余計な文字、空行を含んではいけません。
条件
すべてのテストケースにおいて、以下の条件をみたします。
・-100 ≦ L, u, a, b, v ≦ 100
私が実装したソースコード
私が実装したソースコードは以下になります。
# 入力するデータの行数
n = 3
#1行ずつ配列に格納し、配列の要素を取り出して1加算する
for i in range(n):
array1 = [int(x) for x in input().split(" ")]
for d in array1:
print(d + 1)
練習問題の回答
練習問題の回答例は以下の通りです。
L = int(input())
u, a, b = map(int, input().split())
v = int(input())
print(L + 1)
print(u + 1)
print(a + 1)
print(b + 1)
print(v + 1)
もやっとした点
回答例のソースコードが練習問題に特化した回答で、汎用性がないと感じました。
最後に
実装するソースコードは人それぞれ違うので、ソースコードの例を見て、改善できる点を見つけるのも、新人プログラマにとって重要なのかなと考え、記事に致しました。