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

이러한 방법으로 진행할 수 있지 않을까 생각해 보았습니다.

반응형