본문 바로가기

 𝗔𝗣𝗣𝗟𝗘/ALGORITHM

[내일배움캠프] 데일리 루틴(iOS_3회차) - 내적

 

이미지를 클릭하면 코딩테스트 페이지로 이동합니다

 

 

내 풀이

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")]
Recent Posts
Visits
Today
Yesterday
Archives
Calendar
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31