알고리즘/Programmers

[Swift_Programmes] 내적

YEN_ 2023. 11. 27. 11:41

 

프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/70128

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


내가 제출한 풀이

import Foundation

func solution(_ a:[Int], _ b:[Int]) -> Int {
    let count: Int = a.count
    var value: Int = 0
    for i in 0 ... count - 1 {
        value += a[i] * b[i]
    }
    return value
}

 


풀이 과정

 

  1. 길이가 같은
  2. 1차원 정수

배열 a, b의 내적을 반환하는 문제이다

 

우선 길이가 같은 배열이므로 둘 중 하나의 길이(count)만큼만 반복문을 돌려주기로 한다.

for - in 문을 count를 범위로 지정해서 돌리면 index를 받아서 사용할 수 있다.

a 배열과 b 배열을 반복문 안에서 받은 index를 사용해서 순서대로 계산한다.

 

for i in 0 ... count - 1 {
    ...
}

 

 

여기서 계산할 수 있는 방법은 두 가지가 있다고 생각하는데,

  1. 배열에 따로 담아둔 다음 반복문이 끝나면 joined 하기
  2. 변수를 만들어 반복문 안에서 바로 계산해버리기

나는 2번이 더 간편하다고 생각했기 때문에 2번으로 풀었다.

 

변수 value 를 만든 다음, 더하기 할당 연산자로 바로 value 에 계산해서 담아준다.

 

let count: Int = a.count
var value: Int = 0
for i in 0 ... count - 1 {
    value += a[i] * b[i]
}

 

 

 

내적 계산법이 제시되어 있어서 풀기에 어렵지는 않았던듯