[swift] guard 문을 사용하여 정렬된 배열에서 이진 검색을 할 수 있나요?
func binarySearch<T: Comparable>(_ array: [T], key: T) -> Int? {
    guard !array.isEmpty else { return nil }
    
    var low = 0
    var high = array.count - 1
    
    while low <= high {
        let mid = low + (high - low) / 2
        
        if array[mid] == key {
            return mid
        } else if array[mid] < key {
            low = mid + 1
        } else {
            high = mid - 1
        }
    }
    
    return nil
}

let sortedArray = [1, 3, 5, 7, 9, 11, 13, 15]
if let index = binarySearch(sortedArray, key: 7) {
    print("Element found at index: \(index)")
} else {
    print("Element not found")
}

위의 코드는 이진 검색을 위한 함수 binarySearch를 정의하고, guard 문을 사용하여 배열이 비어있는지 확인합니다. 이후 이진 검색 알고리즘을 적용하여 원하는 값을 찾거나 찾지 못한 경우 nil을 반환합니다.

참고 문헌: