Algorithm

[알고리즘] 내적 구하기

montmer27 2026. 1. 28. 21:06

문제 요구사항

문제 설명

길이가 같은 두 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;
        //어느 한 배열의 길이만큼(a.length) 반복하여
        for(int i = 0;i<a.length;i++){
            //1부터 n번째 인덱스 간의 곱을 누적한다
            answer += a[i] * b[i];
        }
     
        return answer;
    }
}

모범답안 1

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

 

모범답안 2

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

 

 

실패 요인

 

인사이트

배열은 문자열과 달리 가변 객체이나, 그 길이가 불변이다.
따라서 원소뿐만 아니라 길이까지 변경이 필요한 경우엔 리스트를 사용한다.

 

문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/70128

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr