시퀀스 연산자
Coddy Swift 여정의 기초 섹션에 포함된 레슨 — 86개 중 75번째.
Swift는 루프를 작성하지 않고도 배열에 대한 정보를 신속하게 수집할 수 있는 유용한 내장 프로퍼티와 메서드를 제공합니다. 이러한 시퀀스 연산자는 최소한의 코드로 일반적인 계산을 수행하는 데 도움이 됩니다.
count 프로퍼티는 배열의 요소 개수를 반환합니다:
let scores = [85, 92, 78, 90]
print(scores.count) // 4숫자 배열의 경우, Swift는 최솟값과 최댓값을 찾는 메서드를 제공합니다. min() 및 max() 메서드는 빈 배열에는 최솟값이나 최댓값이 없으므로 옵셔널을 반환합니다:
let temperatures = [72, 68, 75, 80, 65]
if let lowest = temperatures.min() {
print(lowest) // 65
}
if let highest = temperatures.max() {
print(highest) // 80
}모든 요소의 합계를 계산하려면 reduce 메서드를 사용하세요. 이 메서드는 초기값부터 시작하여 모든 값을 결합합니다:
let prices = [10, 20, 30]
let total = prices.reduce(0, +)
print(total) // 600은 시작 값이며, +는 Swift에게 각 요소를 누적 합계에 더하도록 지시합니다. 이러한 연산자들을 결합하여 평균을 쉽게 계산할 수 있습니다:
let grades = [85, 90, 78, 92]
let average = grades.reduce(0, +) / grades.count
print(average) // 86챌린지
쉬움scores를 받아서 배열에 대한 통계 요약 문자열을 반환하는 analyzeScores 함수를 작성하세요.
시퀀스 연산자를 사용하여 점수의 개수(count), 최솟값(minimum), 최댓값(maximum), 그리고 평균(average)을 계산한 다음, 이를 하나의 요약 문자열로 포맷팅하세요.
로직:
count를 사용하여 요소의 총 개수를 구합니다.min()을 사용하여 최솟값을 찾습니다.max()를 사용하여 최댓값을 찾습니다.reduce(0, +)를 사용하여 합계를 계산하고 개수로 나누어 평균을 구합니다.- 모든 통계가 포함된 포맷팅된 문자열을 반환합니다.
매개변수:
scores([Int]): 정수 점수 배열 (최소 하나 이상의 요소가 포함됨이 보장됨)
반환값: 통계를 포함하는 포맷팅된 문자열 (String). 형식: "Count: X, Min: X, Max: X, Avg: X"
예시: scores가 [85, 90, 78, 92]인 경우, 함수는 "Count: 4, Min: 78, Max: 92, Avg: 86"를 반환해야 합니다.
참고: 평균은 정수 나눗셈을 사용하여 계산해야 합니다 (소수점 없음).
치트 시트
Swift는 루프를 작성하지 않고도 배열을 다룰 수 있는 내장 프로퍼티와 메서드를 제공합니다.
count 프로퍼티는 요소의 개수를 반환합니다:
let scores = [85, 92, 78, 90]
print(scores.count) // 4min()과 max() 메서드는 가장 작은 값과 가장 큰 값을 찾습니다. 빈 배열에는 최소값이나 최대값이 없으므로 이 메서드들은 옵셔널을 반환합니다:
let temperatures = [72, 68, 75, 80, 65]
if let lowest = temperatures.min() {
print(lowest) // 65
}
if let highest = temperatures.max() {
print(highest) // 80
}reduce 메서드는 초기값부터 시작하여 모든 값을 결합함으로써 합계를 계산합니다:
let prices = [10, 20, 30]
let total = prices.reduce(0, +)
print(total) // 60reduce와 count를 결합하여 평균을 계산합니다:
let grades = [85, 90, 78, 92]
let average = grades.reduce(0, +) / grades.count
print(average) // 86직접 해보기
func analyzeScores(scores: [Int]) -> String {
// 여기에 코드를 작성하세요
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.