mrban 2022. 1. 17. 09:22

1. 문제

길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어지고 a와 b의 내적을 return하는 함수를 만드시오.

예를들어, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다.

 

2. 제한
a, b의 길이는 1 이상 1,000 이하입니다.
a, b의 모든 수는 -1,000 이상 1,000 이하입니다.
 
3. 정답
class Solution {
    public int solution(int[] a, int[] b) {
        int answer = 0;

        for (int i = 0; i < a.length; i++) {
            answer += (a[i] * b[i]);
        }
        return answer;
    }
}

4. 설명

4-1. 길이가 같으므로 a의 길이만큼 for문을 돌리면서 내적을 구한다.

4-2. answer는 a[0]*b[0] + a[1]*b[1] + .... + a[n-1]*b[n-1] 이런식으로 for문을 통해 계산된다.

 

 

5. 참고

5-1. a와 b는 최대 1000길이이고 a와 b의 인자들의 최대 값도 1000이기 때문에 발생할 수 있는 가장 큰 내적값은 1000*1000*1000 = 1,000,000,000이다. 따라서 return값의 자료형은 int로 해도 충분하다.