Algorithm & Data Structure/Algorithm
[프로그래머스] 내적 .with Swift
okoo
2024. 6. 4. 16:42
반응형
--------------------문제 설명--------------------
길이가 같은 두 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
2
3
4
5
6
7
|
func solution(_ a:[Int], _ b:[Int]) -> Int {
var result: Int = 0
for i in 0..<a.count{
result += a[i] * b[i]
}
return result
}
|
cs |
문제를 보면 처음 계산해야하는 부분이 배열의 같은 수 끼리 계산을 해야한다. a[0] * b[0]같은 느낌으로
그래서 순서도를 그려보았다.
1. for문을 돌려서 a와 b의 곱을 계산한다.
2. 곱 계산을 진행한 값을 전부 더한다.
3. 그 부분을 return한다.
이렇게 하면 문제는 쉽게 풀린다.
다만 2번을 다른 방법으로 구현할 수 있을지 생각해 보았다.
'result를 배열로 만든 다음 그걸 reduce(0, +)로 구하는 방법'
1
2
3
4
5
6
7
|
func solution1(_ a:[Int], _ b:[Int]) -> Int {
var result: [Int] = []
for i in 0..<a.count{
result.append(a[i] * b[i])
}
return result.reduce(0, +)
}
|
cs |
이러한 방법으로 진행할 수 있지 않을까 생각해 보았습니다.
반응형