요약: 리더보드 정렬
Coddy PHP 여정의 논리 & 흐름 섹션에 포함된 레슨 — 68개 중 26번째.
챌린지
쉬움두 개의 입력을 받게 됩니다: 첫 번째는 JSON 형식의 플레이어 이름과 점수가 담긴 연관 배열이고, 두 번째는 정렬 순서("asc" 또는 "desc")입니다. 두 입력을 모두 읽고, JSON 문자열을 배열로 변환한 다음, 지정된 순서에 따라 점수별로 리더보드를 정렬하고, 각 플레이어의 이름과 점수를 Name: Score 형식으로 별도의 줄에 출력하세요.
플레이어 이름과 점수의 연결 관계를 유지하기 위해 오름차순 정렬에는 asort()를, 내림차순 정렬에는 arsort()를 사용하세요.
입력 형식:
- 첫 번째 줄: 플레이어 이름을 키로, 점수를 값으로 하는 JSON 객체 (예:
{"Alice":1500,"Bob":2300,"Charlie":1800,"Diana":2100}) - 두 번째 줄: 정렬 순서 -
asc또는desc
예상 출력: 지정된 순서에 따라 정렬된 각 플레이어의 이름과 점수를 Name: Score 형식으로 별도의 줄에 출력
직접 해보기
<?php
// JSON 입력을 읽습니다
$jsonInput = fgets(STDIN);
$leaderboard = (array)json_decode($jsonInput, true);
// 정렬 순서를 읽습니다
$order = trim(fgets(STDIN));
// TODO: 아래에 정렬 순서에 따라 리더보드를 정렬하는 코드를 작성하세요
// 각 플레이어의 이름과 점수를 출력합니다
foreach ($leaderboard as $name => $score) {
echo "$name: $score\n";
}
?>