Menu
CoddyTech

Ôn tập: bảng xếp hạng

Thuộc phần Logic và luồng thực thi trong hành trình Swift của Coddy. Bài học 32 trên 56.

challenge icon

Thử thách

Trung bình

Bạn đang tạo bảng xếp hạng. Đọc một dòng đầu vào: danh sách các mục name:score được phân tách bằng dấu phẩy. Một số mục có điểm không phải số nguyên và cần được bỏ qua (dùng compactMap).

In ba người chơi đứng đầu theo điểm giảm dần, mỗi người trên một dòng, theo định dạng:

<rank>. <name> - <score>

Thứ hạng bắt đầu từ 1. Nếu hòa điểm, xếp theo tên thứ tự bảng chữ cái. Nếu có ít hơn ba mục hợp lệ, hãy in tất cả.

Sau bảng xếp hạng, in Avg: <n> với điểm trung bình nguyên của mọi điểm hợp lệ (làm tròn về 0, không có chữ số thập phân). Nếu không có mục hợp lệ nào, in Avg: 0.

Với đầu vào alice:90,bob:bad,cara:85,dan:90,eve:70,fin:99, đầu ra là:

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

Tự làm thử

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

// TODO: dùng compactMap để tạo (name, score); sắp xếp theo score giảm dần, nếu bằng nhau thì theo name;
// in ra 3 mục đầu tiên; sau đó tính trung bình của tất cả score hợp lệ

Tất cả bài học trong Logic và luồng thực thi

Tự luyện tập: Playground Swift