Menu
Coddy logo textTech

날짜별로 이벤트 정렬하기

Coddy PHP 여정의 논리 & 흐름 섹션에 포함된 레슨 — 68개 중 62번째.

challenge icon

챌린지

쉬움

두 개의 입력을 받게 됩니다: 이벤트 배열을 나타내는 JSON 문자열과 오늘 날짜를 나타내는 YYYY-MM-DD 형식의 날짜 문자열입니다.

첫 번째 입력은 다음과 같은 형식의 JSON 문자열입니다: [{"name":"Team Meeting","date":"2024-04-15","location":"Office"},{"name":"Conference","date":"2024-05-20","location":"Convention Center"},{"name":"Workshop","date":"2024-03-10","location":"Library"}]

두 번째 입력은 다음과 같은 형식의 날짜 문자열입니다: 2024-04-01

두 입력을 모두 읽고 JSON 문자열을 이벤트 배열로 디코딩하세요. 이벤트 날짜가 오늘 날짜보다 크거나 같은 예정된 이벤트(upcoming events)만 포함하도록 이벤트를 필터링하세요.

사용자 정의 비교 함수와 함께 usort()를 사용하여 예정된 이벤트를 날짜 기준 오름차순(가장 빠른 날짜 우선)으로 정렬하세요. 비교 함수는 두 이벤트의 날짜를 비교하고 그 순서를 결정하는 값을 반환해야 합니다.

정렬 후, 각 예정된 이벤트를 다음 형식으로 출력하세요:

Upcoming: [name] on [date] at [location]

각 이벤트를 가장 빠른 날짜부터 가장 늦은 날짜까지 연대순으로 별도의 줄에 출력하세요.

입력 형식:

  • 첫 번째 줄: name, date, location 키를 가진 이벤트 배열을 나타내는 JSON 문자열
  • 두 번째 줄: 오늘 날짜를 나타내는 YYYY-MM-DD 형식의 날짜 문자열 (예: 2024-04-01)

예상 출력: 각 예정된 이벤트를 연대순으로 별도의 줄에 다음 형식으로 출력: Upcoming: [name] on [date] at [location]

직접 해보기

<?php
// 이벤트의 JSON 문자열을 읽습니다
$eventsJson = fgets(STDIN);
$events = (array)json_decode($eventsJson, true);

// 오늘의 날짜를 읽습니다
$todayDate = trim(fgets(STDIN));

// TODO: 아래에 코드를 작성하세요
// 다가오는 이벤트 필터링 (날짜 >= 오늘의 날짜)
// usort()를 사용하여 다가오는 이벤트를 날짜순으로 정렬
// 각 다가오는 이벤트를 요구되는 형식으로 출력

?>

논리 & 흐름의 모든 레슨