[swift] 맵 함수를 사용하여 배열의 값에 대한 최솟값 구하기

맵 함수는 배열 요소에 대해 특정 연산을 수행하는 데 사용되는 고차 함수입니다. 이를 활용하여 배열에서 최솟값을 구하는 방법을 알아보겠습니다.

먼저, 다음과 같은 정수 배열이 있다고 가정해봅시다.

let numbers = [5, 3, 8, 2, 9]

위의 배열에서 최솟값을 구하기 위해 맵 함수를 사용할 수 있습니다. 맵 함수는 각각의 배열 요소에 대해 클로저를 실행하고, 그 결과를 새로운 배열로 반환합니다. 이때 클로저에는 배열 요소를 매개변수로 받아 최솟값을 비교하고 반환하는 로직을 작성해야 합니다.

let minValue = numbers.map { $0 }.min()
print(minValue) // 출력: Optional(2)

위의 코드에서는 numbers 배열의 각 요소를 클로저에 전달하여 맵 함수를 실행하고, 반환된 새로운 배열에서 최솟값을 구합니다. 결과값이 옵셔널로 반환되므로, 출력 결과는 Optional(2)로 나타납니다.

만약 최솟값을 옵셔널이 아닌 일반 값으로 받고 싶다면, nil coalescing operator인 ??를 사용하여 기본값을 지정할 수 있습니다.

let minValue = numbers.map { $0 }.min() ?? 0
print(minValue) // 출력: 2

위의 코드에서는 최솟값이 nil인 경우에는 기본값으로 0을 사용하도록 하였습니다.

맵 함수를 사용하여 배열의 값에 대한 최솟값을 구하는 방법을 알아보았습니다. 맵 함수는 배열의 다양한 요소에 대한 연산을 간편하게 처리할 수 있는 유용한 기능입니다. 하지만 배열의 크기가 클 경우에는 맵 함수보다 성능이 더 좋은 다른 방법을 고려해야 할 수도 있습니다.

참고 자료