길이가 같은 두 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 이하입니다.
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;
}
}
이렇게 문제를 풀었다. for문에서 a와 b를 곱하여 answer에 더하는 것을 길이 만큼 해주었다.
다시 리마인드를 하면, 자바에서 길이를 구하는 대표적인 메서드에는 .length와 .length(), .size()가 있다.
. length는 배열의 길이를 확인할 때, . length()는 문자열의 길이를 확인할 때, .size()는 ArrayList의 길이를 확인할 때 사용한다.
import java.util.stream.IntStream;
class Solution {
public int solution(int[] a, int[] b) {
return IntStream.range(0, a.length).map(index -> a[index] * b[index]).sum();
}
}
그 외에 이러한 풀이가 있었다.
이 풀이는 IntStream.range(0, a.length)는 0부터 배열 길이 -1까지의 정수 스트림을 생성
.map(index -> a[index] * b[index])는 각 인덱스에서 a[index]와 b[index]의 곱을 계산하고 람다식을 사용하여 변환 작업 수행
.sum(); 스트림의 모든 요소를 더하여 최종 내적 결과를 반환한다.
'오늘의 코딩 테스트' 카테고리의 다른 글
오늘의 코딩 테스트(문자열 내림차순으로 배치하기) (1) | 2025.02.25 |
---|---|
오늘의 코딩 테스트(약수의 개수) (0) | 2025.02.24 |
오늘의 코딩 테스트(수박수박수박수박수박수?) (0) | 2025.02.19 |
오늘의 코딩 테스트(가운데 글자 가져오기) (0) | 2025.02.18 |
오늘의 코딩 테스트(없는 숫자 더하기) (0) | 2025.02.14 |