[swift] 고차 함수를 사용하여 배열 내에서 최댓값 또는 최솟값을 찾는 방법은 어떻게 되나요?

Swift에서는 고차 함수를 사용하여 배열 내에서 최댓값과 최솟값을 찾을 수 있습니다. 고차 함수는 함수를 인자로 받거나 함수를 반환하는 함수를 의미합니다.

최댓값을 찾는 경우에는 max() 함수를 사용할 수 있습니다. max() 함수는 배열을 인자로 받아 그 중에서 가장 큰 값을 반환합니다.

let numbers = [4, 6, 2, 9, 1, 5]
let maxNumber = numbers.max()
print(maxNumber) // 9

최솟값을 찾는 경우에는 min() 함수를 사용할 수 있습니다. min() 함수는 배열을 인자로 받아 그 중에서 가장 작은 값을 반환합니다.

let numbers = [4, 6, 2, 9, 1, 5]
let minNumber = numbers.min()
print(minNumber) // 1

또 다른 방법으로는 reduce() 함수를 사용하여 최댓값과 최솟값을 찾을 수도 있습니다. reduce() 함수는 초기값과 배열의 각 요소를 조합하여 하나의 값으로 줄이는 역할을 합니다.

let numbers = [4, 6, 2, 9, 1, 5]
let maxNumber = numbers.reduce(0, { max($0, $1) })
print(maxNumber) // 9

let minNumber = numbers.reduce(numbers[0], { min($0, $1) })
print(minNumber) // 1

위의 예시에서 reduce() 함수의 인자로 0과 배열의 각 요소를 비교하는 클로저를 전달하여 최댓값을 구할 수 있습니다. 최솟값은 초기값으로 배열의 첫 번째 요소를 설정하고, 각 요소를 비교하는 클로저를 전달하여 구할 수 있습니다.

고차 함수를 사용하면 배열 내에서 최댓값과 최솟값을 간단하게 찾을 수 있으므로, 보다 효율적인 코드 작성이 가능합니다.

참고 자료: