문제 설명
길이가 같은 두 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 이하이다.
입출력 예
a | b | result |
[1, 2, 3, 4] | [-3, -1, 0, 2] | 3 |
[-1, 0, 1] | [1, 0, -1] | 2 |
입출력 예 설명
입출력 예 #1
- a와 b의 내적은 1*(-3) + 2*(-1) + 3*0 + 4*2 = 3 입니다.
입출력 예 #2
- a와 b의 내적은 (-1)*1 + 0*0 + 1*(-1) = -2 입니다.
초기 코드
class Solution {
public int solution(int[] a, int[] b) {
int answer = 1234567890;
return answer;
}
}
정답 코드
더보기
class Solution {
public int solution(int[] a, int[] b) {
int answer = 1234567890;
answer=0;
for(int i=0; i<a.length; i++)
answer+=a[i]*b[i];
return answer;
}
}
코드 설명
answer의 초기값이 1234567890으로 되어있다. 이대로 진행할 경우 값은 의도한 바와 전혀 다르게 나온다. 그래서 answer를 0으로 바꿔준다.
조건을 보면 a와 b의 길이는 같다. 그래서 반복문을 둘 중 하나의 길이로 하면 된다. 자바에서 배열의 길이를 구하는 방법은 arr.length 형식이다.
내적은 a의 원소값과 b의 원소값을 곱하고, 그 곱한 값이 answer에 누적되는 것이다.
'programmers-코딩테스트 연습 > Level 1. 자바' 카테고리의 다른 글
2021-06-03 / 3진법 뒤집기 (0) | 2021.06.03 |
---|---|
2021-06-03 / 약수의 개수와 덧셈 (0) | 2021.06.03 |
2021-06-02 / 로또의 최고 순위와 최저 순위 (0) | 2021.06.02 |
2021-06-02 / 음양 더하기 (0) | 2021.06.02 |
2021-06-01 / 소수 만들기 (0) | 2021.06.01 |