本サイト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つの整数の読み込み
キーボードから文字列を受け取る際に使用する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)
コメント