IOS/Swift Algorithm Level 1
Swift. 내적
HyeonGyu IM
2020. 11. 6. 12:47
문제.
길이가 같은 두 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되는 요소가 출력되는 것을 알고있었는데 이런건 도대체 언제쓸까... 하고 생각했었는데 이렇게 보게 되니 깨달음을 얻어 가네요 ㅎㅎ