AIZU ONLINE JUDGE ITP1_6_Aをpythonで解いてみた

python

本サイトAIZU ONLINE JUDGE ITP1_6_A へはこちらから

目次

問題:数列の反転

与えられた数列を逆順に出力するプログラムを作成して下さい。

Input

入力は以下の形式で与えられます

n
a1 a2 . . . an

n は数列の長さを示し、ai は i 番目の数を表します。

Output

逆順の数列を1行に出力して下さい。数列の要素の間に1つの空白を入れて下さい(最後の数の後に空白は入らないことに注意して下さい)。

Constraints

  • n ≤ 100
  • 0 ≤ ai < 1000

Sample Input 1

5
1 2 3 4 5

Sample Output 1

5 4 3 2 1

Sample Input 2

8
3 3 4 4 5 8 7 9

Sample Output 2

9 7 8 5 4 4 3 3

解答例

n = int(input())
get_lst = list(map(int, input().split()))
get_lst.reverse()
print(*get_lst)

解説

以下のように解いていきます。

  1. 1つの整数の読み込み
  2. 複数の整数を読み込み、リストとして変数に保持
  3. リスト内の整数の順番を逆にする
  4. 逆順になったリストの表示

キーボードから文字列を受け取る際に使用するinput関数をint関数で囲み、整数値として受け取ります。

# input関数をint関数で囲み、整数値として変数に代入
n = int(input())

※※サイト内「AIZU ONLINE JUDGE ITP1_1_Bをpythonで解いてみた」の、input関数とはにinput関数の使用方法が書かれておりますのでぜひご覧ください。

複数の整数の読み込みにはmap関数を使用します。第二引数のinput().split()で空白区切りの文字列を取得した値を、一つずつint関数に当てはめてint型に変換、さらに、list関数で囲み変数に設定します。

リストにする理由は、pythonにはリストを逆順にするメソッドが用意されているからです。

# input().split()で空白区切りの文字列を取得 → intに変換 → list関数で囲み、リストとしてget_lstに設定
get_lst = list(map(int, input().split()))

※サイト内「AIZU ONLINE JUDGE ITP1_1_Cをpythonで解いてみた」の、map関数とはにmap関数の使用方法が書かれておりますのでぜひご覧ください。

ここでは、リストを逆順に並べ替えるreverseメソッドを使用します。

reverseメソッドとは

Pythonでリストの要素を逆順に並べ替えるメソッドです。変数名.reserse()と記述し、リストを逆順にします。

※reverseメソッドは逆順にするメソッドであり降順にするメソッドではありません。

nums = [1, 3, 2, 5, 4]

# reverseメソッドでリストを逆順に並べ替え
nums.reverse()
print(nums)
# [4, 5, 2, 3, 1]

今回は、リストとして変数に保持された値を、reverseメソッドで逆順にします。

# リストを逆順に並べ替える
get_lst.reverse()

print関数を使って逆順になったリストを表示します。リスト内の数字のみ表示したいので、変数名の前にアスタリスク(*)をつけリストから取り出します。

# 変数名の前にアスタリスク(*)をつけリスト内を表示
print(*get_lst)

最後に、もう一度プログラムを確認してみましょう。

# input関数をint関数で囲み、整数値として変数に代入
n = int(input())
# input().split()で空白区切りの文字列を取得 → intに変換 → list関数で囲み、リストとしてget_lstに設定
get_lst = list(map(int, input().split()))
# リストを逆順に並べ替える
get_lst.reverse()
# 変数名の前にアスタリスク(*)をつけリスト内を表示
print(*get_lst)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

雇われのシステムエンジニアです。
普段は車載ECUのセキュリティー分野に従事しております。

■保有資格
Salesforce 認定 Platform アプリケーションビルダー
Salesforce 認定 Platform デベロッパー

コメント

コメントする

目次