관리자 글쓰기
프로그래밍 문제 15번 내적
2022. 9. 26. 12:19 - DoosanBaek

이 문제는 프로그래머스에서 제공된 문제를 풀이한 문제이며, 저작권은 프로그래머스에게 있습니다.

언어 : Java

문제 설명

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

 

Solution,java

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

 

 

답안도출 과정

 1. 두 정수 배열 a와 b라는 문제 설명을 확인하고, int형 타입의 배열 a, int 형 타입의 배열 b를 선언

2. 길이가 같은 두 1차원 배열이라는 설명을 확인하고, a와b의 길이가 같은 조건을 확인

3. a와 b의 내적을 구하는 입출력 예시를 확인 시,

  a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이)

 a 배열의 인덱스 값 곱하기 b 배열의 인덱스 값을 n번(a배열 = b배열의 길이만큼) 더하는 과정임을 확인

4. a[i]*b[i] 를   a.length 만큼 반복문을 돌려서 계속 더해진 값을  answer에 입력한다. ( a와 b 의배열의 길이가 같으므로 ) 

 

 

실행 메소드 추가

class Solution15 {
    public static int[]a = {1,2,3,4};
    public static int[]b = {-3,-1,0,4};

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

    public static void main(String[] args) {
        Solution15 solution15 = new Solution15();
        System.out.println(solution15.solution15(a,b));
    }
}