복습 - 사용자 지정 정렬
Coddy Swift 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨. 57개 중 41번째.
챌린지
어려움음악 라이브러리가 표준 프로토콜을 사용하여 노래를 정렬하고 중복을 제거합니다. Song에는 title, artist, year, rating(1-5)이 있습니다. 대소문자를 무시하고 title과 artist를 기준으로(같은 아티스트의 같은 노래) Equatable 및 Hashable로 만들고, 높은 평점부터 낮은 평점 순으로, 그다음 최신 연도부터 오래된 연도 순으로, 그다음 제목의 알파벳순으로 Comparable하게 만드세요. 또한 평점 1점당 별 하나를 사용하여 CustomStringConvertible을 Title - Artist (2019) **** 형식으로 구현하세요.
playlist(_:)를 완성하세요. Set을 사용하여 중복을 제거하고(첫 번째 항목 유지), sorted()로 정렬한 다음 노래의 설명을 반환하고, 이어서 duplicates removed: 1을 반환합니다.
제공된 코드는 title,artist,year,rating 형식의 줄로 노래를 읽고 반환된 각 줄을 출력합니다.
코드는 Song.swift와 Functions.swift에 작성하세요. main.swift에는 제공된 입력/출력 코드가 있으며 편집할 수 없습니다.
직접 해보기
// 제공된 입력/출력 코드: 그대로 유지하세요
var input: [String] = []
while let line = readLine() { input.append(line) }
let songs = input.map { line -> Song in
let p = line.split(separator: ",").map(String.init)
return Song(title: p[0], artist: p[1], year: Int(p[2])!, rating: Int(p[3])!)
}
for line in playlist(songs) { print(line) }
객체 지향 프로그래밍의 모든 레슨
직접 연습해 보세요: Swift 플레이그라운드