はじめに
辞書のkeyを昇順で並び替える問題に取り込みました
問題
n人の野球選手の名前が背番号と一緒に入力されます。
各選手の背番号と名前を、背番号の数字の小さい順に並び替えて出力してください。
ただし、同じ背番号の選手は存在しないものとします。
という問題です。
実装したコード
実装したコードは下記の通りです
# 数値入力
n = int(input())
# Dictionaryの定義
dict1 = {}
# listの定義
list1 = []
# 標準入力からdict1にkeyとvalueを入れる
for i in range(n):
key,value = input().split(' ')
dict1[key] = value
# dict1のkeyをlist1に入れる
for number in dict1.keys():
list1.append(int(number))
# list1を昇順に並び替える
list1.sort()
print("----結果----")
# listの要素を取り出し、dict1のkeyと合わせて出力
for num in list1:
print(str(num) + " " + dict1[str(num)] )
実行結果
実行結果は下記の通りです
追記
辞書を使わない方法は下記です
n = int(input())
b = [list(map(str, input().split())) for l in range(n)]
b.sort(key = lambda pair : int(pair[0]))
print("----結果----")
for i in range(n):
print(b[i][0], b[i][1])
最後に
プログラミングコンテスト課題の問題に挑戦しました。