この記事では
プログラミング学習サービスpaizaラーニングの
スキルチェックレベルアップ問題集をわかりやすく解説します!
プログラミング言語はpythonです。
今回はDランク相当の以下の問題を解説します。
また他のレベルアップ問題集の解答と解説も紹介しているので
ぜひご参考ください!
またpaizaの各ランクの攻略法は
こちらで詳しく紹介しているので、ぜひご参考ください!
数の並び替え (paizaランク D 相当)の解答と解説
今回の問題は「数の並び替え (paizaランク D 相当)」についてです。
問題はこちらからご確認ください。
この問題を解くのに必要な知識は5つです。
- 入力を受け取る
- str型からint型に変換
- 改行区切りの入力を受け取る
- 数値を小さい順に並び替える
- リストの要素を改行区切りで表示
それぞれ詳しく解説します。
入力を受け取る
まずは「入力を受け取る」です。
今回の問題では1行目の入力値で、以降の入力数が変化します。
そのためまずは1行目の入力を受け取る方法を解説します。
pythonではinput関数を使って、入力を受け取ります。
# 1行目の入力を受け取る
n = input()
入力については、こちらをご参考ください!
str型からint型に変換
次は「str型からint型に変換」です。
input関数で受け取った入力値は
例え数値であってもstr型として変数に代入されます。
以降の処理がstr型では実行できないので
int関数を使って、str型からint型に変換しなければなりません。
# 1行目の入力を受け取る
n = input()
# int型に変換
n_int = int(n)
また入力の際にint型に変換すると
変数の数が増えないためシンプルです。
# 1行目の入力を受け取りint型に変換
n = int(input())
変数の型については、こちらをご参考ください!
改行区切りの入力を受け取る
次は「改行区切りの入力を受け取る」です。
今回の問題では、1行目の入力で指定された数の入力が
改行区切りで入力されます。
リストとfor文については、こちらをご参考ください!
- 空のリストを定義
- 入力を受け取り、int型に変換
- 受け取った入力をリストに追加
- 2.3.の処理をfor文で繰り返す
2.でint型に変換するのは、以降の「小さい順に並び替える」ためです。
リストに要素を追加する時はappendメソッドを使用します。
# 1行目の入力を受け取り、int型に変換
n = int(input())
# 空のリストを定義
num_list = []
# n回処理を繰り返す
for _ in range(n):
# 入力を受け取り、int型に変換
num = int(input())
# 受け取った入力をリストに追加
num_list.append(num)
入力を受け取ってリストに追加するまでを、まとめて書くとよりシンプルです。
# 1行目の入力を受け取りint型に変換
n = int(input())
# 空のリストを定義
num_list = []
# n回処理を繰り返す
for _ in range(n):
# 入力を受取りint型に変換しリストに追加
num_list.append(int(input()))
数値を小さい順に並び替える
次は「数値を小さい順に並び替える」です。
小さい順に出力するために、リスト内の要素を小さい順に並び替えます。
リストの要素を並び替えるにはsorted関数を使います。
sorted((リスト))
# 要素を小さい順に並び替える
sorted_num_list = sorted(num_list)
リストの要素を改行区切りで表示
次は「リストの要素を改行区切りで表示」です。
リストの要素を1つずつ取り出すにはfor文を使用します。
for文については、こちらをご参考ください!
今回は改行区切りで要素を表示したいので
print関数を使った出力の処理を、繰り返し実行します。
# 要素を小さい順に並び替える
sorted_num_list = sorted(num_list)
# 要素を1つずつ取り出す
for num in sorted_num_list:
# 要素を出力
print(num)
また小さい順に並び替える時に
新たに変数を定義しないとよりシンプルです。
# 小さい順に並び替え、要素をを1つずつ取り出す
for num in sorted(num_list):
# 要素を出力
print(num)
出力については、こちらをご参考ください!
数の並び替え (paizaランク D 相当)の解答
まとめると「数の並び替え (paizaランク D 相当)」の解答は以下です。
# 1行目の入力を受け取りint型に変換
n = int(input())
# 空のリストを定義
num_list = []
# n回処理を繰り返す
for _ in range(n):
# 入力を受取りint型に変換しリストに追加
num_list.append(int(input()))
# 小さい順に並び替えて要素をを1つずつ取り出す
for num in sorted(num_list):
# 要素を出力する
print(num)
もちろんこの解答でもクリアできますが
「内包表記」を使うと、以下の3行を
# 空のリストを定義
num_list = []
# n回処理を繰り返す
for _ in range(n):
# 入力を受取りint型に変換しリストに追加
num_list.append(int(input()))
たった1行で書けます!
# 内包表記を使った書き方
num_list = [int(input()) for _ in range(n)]
内包表記はコードがシンプルになり、また処理速度も速いです。
paizaでは処理速度もコードの評価に含まれるので、ぜひ使ってみてください!
内包表記については、こちらをご参考ください!
まとめ
今回はpaizaのスキルチェックのレベルアップ問題集の中で
- 数の並び替え (paizaランク D 相当)
の解答と解説を紹介しました。
Dランクの問題のため、非常に簡単ではありますが
高ランクの問題で必要な知識が豊富に含まれています。
しっかりと理解しランクアップを目指していきましょう!
また他のレベルアップ問題集の問題についての解説も、ぜひご参考ください!