문제풀이/프로그래머스

내적 / 프로그래머스 연습문제 / programmers / level1 / Java

RUCKUS 2021. 6. 10. 10:00

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

 

코딩테스트 연습 - 내적

길이가 같은 두 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의

programmers.co.kr


이번 문제는 내적이 무엇인지만 알면 쉽게 풀 수 있는 문제, 실제로 문제에 내적의 공식을 알려준다.

바로 코딩만 하면 된다.

 

내적의 사전적 의미
벡터 공간에서 정의된 이중선형(bilinear; 실수체에서) 혹은 반쌍형적(sesquilinear; 복소수체에서) 함수의 일종
고등학교에서는 '내적'이라고 부르는 연산은 대학교에서는 '도트곱 (dot product)' 혹은 '스칼라곱 (scalar product)'
 이라고 부르는, 내적의 한 종류이며, 실제로는 무한히 많은 종류의 내적이 있다.

 

여기서 말하는 내적은 스칼라곱을 의미하는 것 같다. 아무튼 수학 용어는 어려워 ㅠ

그리하여 for문을 주어지는 매개변수 배열의 길이만큼 반복하고 각각의 배열의 번지수들끼리 곱한 값을 더해준 후에 리턴해주면 끝난다.

 

[결과코드]

public class Dotproduct {

	public static void main(String[] args) {

		int [] a = {1,2,3,4};
		int [] b = {-3,-1,0,2};
		
		solution(a, b);
	}
	
    public static int solution(int[] a, int[] b) {
        int answer = 0;
        
        // 내적 공식 a1 * b1 + a2 * b2 + ...
        for (int i = 0; i < b.length; i++) {
			answer += a[i] * b[i];
		}

        return answer;
    }

}

 

이제 이정도는 쉽게 풀 수 있어야 하는 수준에 도달했다.


[깃허브]

https://github.com/RUCKUSJERRY/practiceOfAlgorithm/blob/main/Prs_Pratice/src/com/level01/Dotproduct.java

 

RUCKUSJERRY/practiceOfAlgorithm

Contribute to RUCKUSJERRY/practiceOfAlgorithm development by creating an account on GitHub.

github.com