Menu
Coddy logo textTech

데이터 변환기

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

최종 프로젝트 과제: 데이터세트를 요약 보고서로 재구성하세요. 필터링, 매핑, 그룹화, 오류 처리, 메서드 정의를 하나의 프로그램으로 결합하세요.

challenge icon

챌린지

중급

배열 students가 주어집니다. 각 항목은 :id, :grades(비어 있을 수도 있는 정수 배열), :subjects(문자열 배열)를 포함하는 해시입니다.

두 개의 키를 가진 해시를 반환하는 transform_dataset(students) 메서드를 정의하세요.

  • :qualified_ids: 하나 이상의 성적이 있고 모든 성적이 70을 엄격하게 초과하는 학생들의 :id를 정렬한 배열입니다(all?을 사용하세요).
  • :subject_counts: 자격을 충족한 학생들이 수강한 각 과목을 해당 과목을 수강한 자격 충족 학생 수에 매핑하는 해시입니다.

학생의 :grades 배열이 비어 있으면 해당 학생은 자격을 충족하지 못하므로 조용히 건너뛰세요.

그런 다음 메서드를 호출하고 다음을 출력하세요.

  1. 자격을 충족한 ID를 , 로 연결하고 앞에 Qualified: 를 붙입니다. 아무도 없으면 Qualified: (none)을 출력합니다.
  2. 과목별로 알파벳순으로 정렬하여 <subject>: <count> 형식으로 한 줄씩 출력합니다.

기본 students에 대한 출력은 다음과 같습니다.

Qualified: S1, S4
biology: 1
history: 1
math: 2
physics: 1

직접 해보기

students = [
  { id: "S1", grades: [85, 92, 78], subjects: ["math", "physics"] },
  { id: "S2", grades: [65, 80, 90], subjects: ["math", "biology"] },
  { id: "S3", grades: [],          subjects: ["art"] },
  { id: "S4", grades: [88, 95],    subjects: ["math", "biology", "history"] },
  { id: "S5", grades: [70, 75],    subjects: ["chemistry"] }
]

# TODO: def transform_dataset(students), return { qualified_ids:, subject_counts: }
# TODO: 자격 있는 ID와 과목 수를 출력
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

로직 및 흐름의 모든 레슨

직접 연습해 보세요: 온라인 Ruby 컴파일러