Menu
Coddy logo textTech

復習 - リーダーボード

CoddyのSwiftジャーニー「ロジックとフロー」セクションの一部 — レッスン 32/56。

challenge icon

チャレンジ

中級

リーダーボードを作成しています。1行の入力を読み込みます。これはカンマ区切りの name:score エントリのリストです。一部のエントリには整数ではないスコアが含まれており、それらはスキップする必要があります(compactMap を使用してください)。

上位3名のプレイヤーをスコアの降順で、1行に1人ずつ、次の形式で出力してください:

<rank>. <name> - <score>

ランクは 1 から始まります。同点の場合は、名前のアルファベット順で順位を決定してください。有効なエントリが3つ未満の場合は、それらすべてを出力してください。

リーダーボードの後に、すべての有効なスコアの整数平均(小数点以下切り捨て)を Avg: <n> の形式で出力してください。有効なエントリが存在しない場合は、 Avg: 0 と出力してください。

入力が alice:90,bob:bad,cara:85,dan:90,eve:70,fin:99 の場合、出力は次のようになります:

1. fin - 99
2. alice - 90
3. dan - 90
Avg: 86

自分で試してみよう

let entries = readLine()!.components(separatedBy: ",")

// TODO: compactMapで(名前, スコア)に変換し、スコアの降順(同点の場合は名前順)でソートする。
// 上位3名を表示し、その後にすべての有効なスコアの平均を表示する。

ロジックとフローのすべてのレッスン