[swift] 고차 함수를 사용하여 배열 내의 모든 원소들을 특정 값 기준으로 재배열하는 방법은 어떻게 되나요?

Swift는 고차 함수를 사용하여 배열을 다양한 방식으로 조작할 수 있습니다. 배열 내의 원소를 특정 값 기준으로 재배열하려면 sorted(by:), sort(by:), map(_:) 등을 사용할 수 있습니다. 이들 함수들은 다음과 같이 사용할 수 있습니다:

  1. sorted(by:): 이 함수는 배열의 원소를 주어진 클로저 조건에 따라 정렬하여 새로운 배열을 반환합니다.
let numbers = [5, 2, 9, 1, 7]
let sortedNumbers = numbers.sorted(by: { $0 < $1 }) // 오름차순 정렬
// sortedNumbers: [1, 2, 5, 7, 9]
  1. sort(by:): sorted(by:)와 유사하지만, 배열을 직접 정렬합니다.
var numbers = [5, 2, 9, 1, 7]
numbers.sort(by: { $0 < $1 }) // 오름차순 정렬
// numbers: [1, 2, 5, 7, 9]
  1. map(_:): 이 함수는 배열의 모든 원소에 대해 주어진 클로저를 실행하고, 그 결과로 새로운 배열을 생성합니다.
let numbers = [5, 2, 9, 1, 7]
let squaredNumbers = numbers.map({ $0 * $0 }) // 각 원소의 제곱 계산
// squaredNumbers: [25, 4, 81, 1, 49]

위의 예시에서는 sorted(by:) 함수를 사용하여 배열을 정렬하는데, $0$1은 클로저의 매개 변수로 각각 비교될 두 값이 전달됩니다. $0 < $1은 두 값의 순서를 비교하여 오름차순으로 정렬합니다.

따라서, 고차 함수를 활용하여 배열 내의 모든 원소들을 특정 값 기준으로 재배열할 수 있습니다. 위의 예시 코드를 참고하여 자유롭게 활용해보세요.