728x90
[Swift] 프로그래머스 최솟값 만들기(lv. 2)
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/12941
2. 접근
열심히 만들면 된다.
한쪽은 오름차순으로 정렬하고, 한쪽은 내림차순으로 정렬해서 차례로 곱한 값을 누적하여 합하면 된다.
나는 주어진 A를 오름차순 정렬하고, B를 내림차순 정렬했다.
innerA의 값을 직접 바꾸는 방법으로 메모리를 더 쓰는 것을 방지해보았다. enumarated()를 사용하여 인덱스와 원소를 함께 불러서 코드를 조금 더 줄여보았다.
3. 코드
import Foundation
func solution(_ A:[Int], _ B:[Int]) -> Int {
var innerA = A.sorted()
var innerB = B.sorted(by: >)
for (index, i) in innerA.enumarated() {
innerA[index] = i * innerB[index]
}
return innerA.reduce(0, +)
}
728x90
'Problem Solving' 카테고리의 다른 글
[Swift] 프로그래머스 이진 변환 반복하기(lv. 2) (0) | 2023.03.02 |
---|---|
[Swift] 프로그래머스 올바른 괄호(lv. 2) (0) | 2023.03.01 |
[Swift] 프로그래머스 JadenCase 문자열 만들기(lv. 2) (2) | 2023.02.27 |
[Swift] 프로그래머스 햄버거 만들기(lv. 1) (0) | 2023.02.25 |
[Swift] 프로그래머스 개인정보 수집 유효기간(lv. 1) (0) | 2023.02.24 |
댓글