paizaラーニングのレベルアップ問題集「Bランクレベルアップセット」からの出典です。
paiza.jp
Pythonによる「文字と整数の組のソート」問題集と、それらの提出コードの解答例です。
僕が作成、提出したコードは、以下のとおりです。
・STEP: 1 インクリメント
整数 n が入力されるので、その値に1を足した値を出力してください。
''' Pythonによる「Bランクレベルアップメニュー」問題集: 文字と整数の組のソート STEP: 1 インクリメント https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com ''' # coding: utf-8 n = int(input()) print(n+1)
・STEP: 2 数字のみの出力
1行目に行数を表す整数 n、続く n 行で m 個の「文字」と「整数」の組が空白区切りで入力されます。
n 個の整数だけをそのまま順に出力してください。
''' Pythonによる「Bランクレベルアップメニュー」問題集: 文字と整数の組のソート STEP: 2 数字のみの出力 https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com ''' # coding: utf-8 n = int(input()) for i in range(n): s, num = input().split() print(num)
・STEP: 3 昇順ソート出力
1行目でユーザーが1つ与えられます。
n 行のユーザーと血液型の組が与えられるので、ユーザーをキー、血液型を値として、連想配列(辞書)に保存してください。
その連想配列(辞書)の中で1行目で与えられたユーザー名と、ユーザー名に対応する血液型を表示してください。
''' Pythonによる「Bランクレベルアップメニュー」問題集: 文字と整数の組のソート STEP: 3 昇順ソート出力 https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com ''' # coding: utf-8 n = int(input()) lis = list(map(int, input().split())) lis.sort() for i in range(n): print(lis[i])
・FINAL問題: 文字と整数の組のソート
1行目に行数を表す整数 n、続く n 行の各行で「文字」と「整数」の組が空白区切りで入力されます。
n 個の組を、「整数」の値で昇順に並べ変え、「文字」を出力してください。
''' Pythonによる「Bランクレベルアップメニュー」問題集: 文字と整数の組のソート FINAL問題: 文字と整数の組のソート https://paiza.jp/works/mondai 提出コードの解答例 https://neguse-atama.hatenablog.com ''' # coding: utf-8 n = int(input()) lis = [] for i in range(n): tempo = [] s, num = input().split() num = int(num) tempo.append(s) tempo.append(num) lis.append(tempo) lis.sort(key=lambda x: x[1]) for i in range(n): print(lis[i][0])
配列(リスト)、連想配列(辞書)、ソートなどについて理解を深める問題です。
paizaラーニングのレベルアップ問題集については、ユーザー同士で解答を教え合ったり、コードを公開したりするのは自由としています。
また授業や研修、教材などにも利用できるそうです。