IOS/Swift Algorithm Level 1

Swift. 내적

 문제. 

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

 풀이.

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


 // 인상깊은 풀이
func solution(_ a:[Int], _ b:[Int]) -> Int {
    var b = b
    return a.map{ $0 * b.removeFirst()}.reduce(0,+)
}
  • ㅠ.ㅠ 번호가 하나로 나오는 문제여서 리듀스로 어떻게 풀수없나... 자바스크립트처럼 초기값을 안정해 줄수는 없을까... 해서 기웃기웃 거리다가 포기하고 그냥 for문을 이용해서 풀었는데 역시 능력자는 존재했습니다...
  • 인상깊은 점은 removeFirst()를 할경우 remove되는 요소가 출력되는 것을 알고있었는데 이런건 도대체 언제쓸까... 하고 생각했었는데 이렇게 보게 되니 깨달음을 얻어 가네요 ㅎㅎ

'IOS > Swift Algorithm Level 1' 카테고리의 다른 글

Swift. 직사각형 별찍기  (0) 2020.11.08
Swift. 예산  (0) 2020.11.08
Swift. x만큼 간격이 있는 n개의 숫자  (0) 2020.11.05
Swift. 행렬의 덧셈( feat. zip )  (0) 2020.11.04
Swift. 핸드폰 번호 가리기  (0) 2020.11.03