復習 - リーダーボード
CoddyのRジャーニー「ロジックとフロー」セクションの一部。レッスン 41/64。
チャレンジ
中級leaderboard(names, points) を完成させてください。各エントリには、1ラウンドで1人のプレイヤーが獲得したポイントが記録されており、同じプレイヤーが何度も登場することがあります。プレイヤーごとに1行、1. ana 15 (2 rounds) のような形式で、合計ポイントの高い順に並べて返してください。合計が同じプレイヤーはアルファベット順に並べます。
次に、Best round: に続けて、単一のエントリとして最も高いポイントを獲得したプレイヤーとそのポイントを追加してください。たとえば cy 12 のようになります。最高ポイントのエントリが複数ある場合は、その中で最初のものを使用します。
提供されているコードは、ラウンドをカンマで区切られた name:points ペアとして読み取り、返された各行を出力します。
自分で試してみよう
leaderboard <- function(names, points) {
# ここにコードを書いてください
character(0)
}
# 提供された入出力コード:そのままにしておいてください
input <- suppressWarnings(readLines(file("stdin")))
pairs <- strsplit(strsplit(input[1], ",")[[1]], ":")
names <- sapply(pairs, function(p) p[1])
values <- as.numeric(sapply(pairs, function(p) p[2]))
cat(leaderboard(names, values), sep = "\n")
ロジックとフローのすべてのレッスン
自分で練習してみよう: Rオンラインコンパイラ