1. 먼저 정수를 담고 있는 배열 arr의 평균 값을 구하는 함수 solution을 구하기 위해 고민을 해본다.
평균 = n개의 수의 합 / n개 로 하면 될 것 같다.
2. 주어진 함수에서 Int에서 왜 Double형으로 반환하는지 고민해본다.
이유는 배열 arr이 가지고 있는 아이템의 합을 n개로 나누면 나머지가 0이 아니고 정확하게 떨어지지 않기 때문이다.
3. 그러면 배열 안에 아이템들의 합을 어떻게 표현해야할까??
reduce(_:_:)를 이용해 Array요소의 합을 구할 수 있다.
swift에서는 다음과 같이 선언했다.
func reduce<Result>
(_ initialResult: Result, _ nextPartialResult: (Result, Element)throws -> Result)
rethrows - >Result
reduce의 첫번째 인자는 시작값이다.(0)
두번째 인자는 어떠한 연산을 할지 적어준다.(+,-,/,*)
//예시
func exArraySum{_ arr: [Int]) -> Int {
return arr.reduce(0,+)
}
따라서 배열안에 있는 아이템의 합을 다음과 같이 구할 수 있다.
arr.reduce(0,+)
4. 배열의 아이템의 총 개수는 .count로 구할 수 있다.
적용하게 되면 다음과 같다.
arr.count
5. 이제 상수를 하나 만들어서 전체 합에 나누기 n개를 하면 된다.
하지만 여기서 주의할 점! 반환값이 Double인 것을 염두해야 한다.
때문에 선언 및 초기화를 할때 반드시 Double형임을 적어주어야 한다.
점수가 매우 짜다....
'Swift랑 친해지기 > programmers 풀기' 카테고리의 다른 글
[프로그래머스] 수박수박수박수박수박수? (Swift) (0) | 2022.01.29 |
---|---|
[프로그래머스] 콜라츠 추측 (Swift) (2) | 2022.01.25 |
[프로그래머스] 직사각형 별찍기 (Swift) (0) | 2022.01.21 |
[프로그래머스] 나머지가 1이 되는 수 찾기 (Swift) (0) | 2022.01.21 |
[프로그래머스] 짝수와 홀수 (Swift) (3) | 2022.01.20 |