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로 해도 충분하다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
나누어 떨어지는 숫자 배열(JAVA) (0) | 2022.01.17 |
---|---|
2016년(JAVA) (0) | 2022.01.17 |
부족한 금액 계산하기(JAVA) (0) | 2022.01.15 |
행렬의 덧셈(JAVA) (0) | 2022.01.15 |
핸드폰 번호 가리기(JAVA) (0) | 2022.01.15 |