티스토리 뷰

내적

문제 설명

길이가 같은 두 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 이하입니다.

 

 

문제 풀이

1. for루프를 돌며 a와 b 배열을 곱하고 더해준다. a와 b의 길이가 같으므로 a의 길이를 사용했다.

 

 

 

코드

내 코드

import Foundation

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

 

다른 사람 코드 중 깔끔한 코드

import Foundation

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

zip을 사용해 튜플로 만들고 map 으로 두 튜플 값을 곱한뒤 reduce로 총 값을 더해주었다.

메소드를 기깔나게 잘 사용했다. (한 수 배우고 갑니다)

 

 

 

후기

for 루프를 돌며 간단하게 풀 수 있는 문제

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
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
글 보관함