Menu
Coddy logo textTech

요약 - 리더보드

Coddy Swift 여정의 로직 및 흐름 섹션에 포함된 레슨 — 56개 중 32번째.

challenge icon

챌린지

중급

리더보드를 생성하려고 합니다. 한 줄의 입력을 읽으십시오: 쉼표로 구분된 name:score 항목 목록입니다. 일부 항목은 정수가 아닌 점수를 가지고 있으며 이러한 항목은 건너뛰어야 합니다 (compactMap을 사용하세요).

점수 내림차순으로 상위 3명의 플레이어를 한 줄에 하나씩 다음 형식으로 출력하십시오:

<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개 출력; 그 다음 모든 유효한 점수의 평균 출력

로직 및 흐름의 모든 레슨