長期投資シミュレーションツール『Tousimu』をリリースしました!

【解答付き】paizaスキルチェックの見本問題「数の並び替え(Dランク)」を解説!

プログラミング
スポンサーリンク

この記事では

プログラミング学習サービスpaizaラーニング

スキルチェックレベルアップ問題集をわかりやすく解説します!

プログラミング言語はpythonです。

今回はDランク相当の以下の問題を解説します。

また他のレベルアップ問題集の解答と解説も紹介しているので

ぜひご参考ください!

またpaizaの各ランクの攻略法は

こちらで詳しく紹介しているので、ぜひご参考ください!

スポンサーリンク

数の並び替え (paizaランク D 相当)の解答と解説

今回の問題は「数の並び替え (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文を使って、入力を受け取りましょう!

リストとfor文については、こちらをご参考ください!

入力を受け取る流れ
  1. 空のリストを定義
  2. 入力を受け取り、int型に変換
  3. 受け取った入力をリストに追加
  4. 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((リスト))

# 要素を小さい順に並び替える
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ランクの問題のため、非常に簡単ではありますが

高ランクの問題で必要な知識が豊富に含まれています。

しっかりと理解しランクアップを目指していきましょう!

また他のレベルアップ問題集の問題についての解説も、ぜひご参考ください!

タイトルとURLをコピーしました