επιστημηさんのBlog東方算程譚にちょっとした問題のC++版、C#版があったのでRuby版を。
#学籍番号と得点(成績)の組:
#record (7, 345), (8, 678), (1, 123), ...
#
#それと学籍番号の列:
#target { 4, 5, 3, 1, 2 };
#
#があるとき、targetを得点順にソートせよ。
master = [
[7, 345],
[8, 678],
[1, 123],
[2, 456],
[5, 567],
[6, 812],
[3, 781],
[4, 234]
]
record = {}
master.each { |data|
record[data[0]] = data[1]
}
target = [4, 5, 3, 1, 2]
target.sort { |a, b|
record[a] <=> record[b]
}.each { |id|
puts "#{id}/#{record[id]}"
}