문제풀이/프로그래머스
내적 / 프로그래머스 연습문제 / 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;
}
}
이제 이정도는 쉽게 풀 수 있어야 하는 수준에 도달했다.
[깃허브]
RUCKUSJERRY/practiceOfAlgorithm
Contribute to RUCKUSJERRY/practiceOfAlgorithm development by creating an account on GitHub.
github.com