본문 바로가기
Algorithm

SwiftUI: 최솟값 만들기

by songmoro 2024. 3. 11.
728x90

프로그래머스 최솟값 만들기

 

주어진 배열 A, B의 값을 1:1로 곱하여 나올 수 있는 수 중 가장 작은 수를 구하는 문제

 

이론상 가장 작은 수가 되려면 (작은 수 * 큰 수) + (작은 수 * 큰 수) + … = 가장 작은 수로 생각해서 A와 B를 오름차순, 내림차순으로 정렬해서 순회

 

func solution(_ A:[Int], _ B:[Int]) -> Int {
    let a = A.sorted(by: <)
    let b = B.sorted(by: >)
    
    return a.enumerated().reduce(0) { partialResult, element in
        partialResult + element.element * b[element.offset]
    }
}

//    A    B    answer
//    [1, 4, 2]    [5, 4, 4]    29
//    [1,2]    [3,4]    10
728x90

'Algorithm' 카테고리의 다른 글

SwiftUI: 이진 변환 반복하기  (0) 2024.03.13
SwiftUI: 올바른 괄호  (0) 2024.03.12
SwiftUI: JadenCase 문자열 만들기  (0) 2024.03.09
SwiftUI: 최댓값과 최솟값  (0) 2024.03.08
SwiftUI: 로또의 최고 순위와 최저 순위  (0) 2024.03.07