내 풀이
import Foundation
func solution(_ a:[Int], _ b:[Int]) -> Int {
return zip(a, b).map(*).reduce(0, +)
}
- zip 함수를 사용하여 두 배열(a와 b)을 순서쌍으로 묶기
- map 함수를 사용하여 각 순서쌍의 내적을 계산
- reduce 함수를 사용하여 내적 결과 합산
reduce 함수는 초기값(여기서는 0)과 배열의 각 요소를 결합하여 하나의 값으로 축소
내적이란?
두 벡터의 곱셈 연산 중 하나
두 벡터의 내적은 각 벡터의 대응하는 요소를 곱한 후 그 결과를 모두 더한 값
예시
내적=a[0]×b[0]+a[1]×b[1]+…+a[n−1]×b[n−1]
은 벡터의 길이
두 벡터의 길이가 같을 때에 한하여, 내적은 각 대응하는 요소의 곱을 모두 더한 값
zip 함수란?
두 개 이상의 시퀀스(배열 또는 컬렉션)에서 각각 동일한 인덱스에 위치한 요소들을 순서대로 조합하여 튜플로 묶어주는 함수
만약 두 배열의 길이가 다를 경우 길이가 더 짧은 배열의 끝에 도달하면 zip 함수는 종료
예시
두 개의 배열이 있을 때
let array1 = [1, 2, 3]
let array2 = ["A", "B", "C"]
zip 함수 사용
let zipped = zip(array1, array2)
// [(1, "A"), (2, "B"), (3, "C")]
' 𝗔𝗣𝗣𝗟𝗘 > ALGORITHM' 카테고리의 다른 글
알고리즘 복습(01) (0) | 2024.02.19 |
---|---|
[내일배움캠프] 데일리 루틴(iOS_3회차) - 약수의 개수와 덧셈 (0) | 2024.02.19 |
[내일배움캠프] 데일리 루틴(iOS_3회차) - 수박수박수박수박수박수? (0) | 2024.02.16 |
[내일배움캠프] 데일리 루틴(iOS_3회차) - 가운데 글자 가져오기 (1) | 2024.02.14 |
[내일배움캠프] 데일리 루틴(iOS_3회차) - 제일 작은 수 제거하기 (0) | 2024.02.13 |