Menu
Coddy logo textTech

시퀀스 연산자

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)  // 60

0은 시작 값이며, +는 Swift에게 각 요소를 누적 합계에 더하도록 지시합니다. 이러한 연산자들을 결합하여 평균을 쉽게 계산할 수 있습니다:

let grades = [85, 90, 78, 92]
let average = grades.reduce(0, +) / grades.count
print(average)  // 86
challenge icon

챌린지

쉬움

scores를 받아서 배열에 대한 통계 요약 문자열을 반환하는 analyzeScores 함수를 작성하세요.

시퀀스 연산자를 사용하여 점수의 개수(count), 최솟값(minimum), 최댓값(maximum), 그리고 평균(average)을 계산한 다음, 이를 하나의 요약 문자열로 포맷팅하세요.

로직:

  1. count를 사용하여 요소의 총 개수를 구합니다.
  2. min()을 사용하여 최솟값을 찾습니다.
  3. max()를 사용하여 최댓값을 찾습니다.
  4. reduce(0, +)를 사용하여 합계를 계산하고 개수로 나누어 평균을 구합니다.
  5. 모든 통계가 포함된 포맷팅된 문자열을 반환합니다.

매개변수:

  • 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)  // 4

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)  // 60

reducecount를 결합하여 평균을 계산합니다:

let grades = [85, 90, 78, 92]
let average = grades.reduce(0, +) / grades.count
print(average)  // 86

직접 해보기

func analyzeScores(scores: [Int]) -> String {
    // 여기에 코드를 작성하세요
}
quiz icon실력 점검

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

기초의 모든 레슨