적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

Algorithm/Programmers

[Swift 알고리즘] Programmers 내적

hongssup_ 2022. 2. 4. 20:42
반응형

Level 1 월간 코드 챌린지 시즌1

내적

문제 설명
 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요.
 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이)
제한사항
 - a, b의 길이는 1 이상 1,000 이하입니다.
 - a, b의 모든 수는 -1,000 이상 1,000 이하입니다.

 

입출력 예시

print(solution([1,2,3,4], [-3,-1,0,2])) //3
print(solution([-1,0,1], [1,0,-1])) //-2

 

내 답안

import Foundation

func solution(_ a:[Int], _ b:[Int]) -> Int {
    return (0..<a.count).map { a[$0]*b[$0] }.reduce(0, +)
}

풀이

func solution(_ a:[Int], _ b:[Int]) -> Int {
    var sum = 0
    for i in 0..<a.count {
        sum += a[i]*b[i]
    }
    return sum
}

 

다른 답안

func solution(_ a:[Int], _ b:[Int]) -> Int {
    return zip(a, b).map(*).reduce(0, +)
    return zip(a, b).map({$0 * $1}).reduce(0, +)
}

이런 식으로 zip을 사용해서 더 간단하게 풀 수도 있더라. 

 

728x90
반응형