[Java]코딩테스트 연습 - 내적(Lv1)

Gentlee's Self-Study Log·2023년 4월 24일
0

Java Coding Test

목록 보기
3/8
post-thumbnail

내적

난이도(Lv1) / 정답률 82%

문제 설명

길이가 같은 두 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 이하입니다.

입출력 예

입력값1 : [1,2,3,4], [-3,-1,0,2]
출력값1 : 3

입력값2 : [-1,0,1][1,0,-1]
출력값2 : -2

나의 풀이

class Solution {

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

다른 풀이

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();
    }
}

다른 풀이

stream을 임포트하여서 범위를 지정한 뒤 map으로 각각의 인덱스의 값들을 sum()으로 합하였다.
for반복문을 사용하는 것에 비해 복잡해보이지만, 참신해보인다.

피드백

반복문을 사용하면 비교적 쉬운 문제였다. 다른 방법을 사용하여 문제를 풀이할 수 있는 방법을 찾아봐야겠다.

profile
https://github.com/SamGentlee

0개의 댓글