알고리즘
[Swift 알고리즘] - 내적 (Programmers)
Peppo
2022. 10. 10. 13:00
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/70128
내 풀이
import Foundation
func solution(_ a:[Int], _ b:[Int]) -> Int {
var saveArr: [Int] = []
for (idx, num) in b.enumerated() {
saveArr.append(num * a[idx])
}
let result: Int = saveArr.reduce(0, { $0 + $1})
return result
}
solution([1,2,3,4], [-3,-1,0,2])
다른사람의 풀이
func solution(_ a:[Int], _ b:[Int]) -> Int {
let result = zip(a, b).map { $0 * $1 }.reduce(0) { $0 + $1 }
return result
}
배운것
methods(_:)
두 개의 시퀀스를 사용해 시퀀스 쌍을 만듭니다.
예제
// 두 시퀀스의 length가 같을경우
let words = ["one", "two", "three", "four"]
let numbers = 1...4
for (word, number) in zip(words, numbers) {
print("\(word): \(number)")
}
// Prints "one: 1"
// Prints "two: 2
// Prints "three: 3"
// Prints "four: 4"
// 두 시퀀스의 length중 짧은쪽까지만 합쳐짐.
let naturalNumbers = 1...Int.max
let zipped = Array(zip(words, naturalNumbers))
// zipped == [("one", 1), ("two", 2), ("three", 3), ("four", 4)]
728x90