๋ด์ (ๅ ง็ฉ, inner product)
๊ธธ์ด๊ฐ ๊ฐ์ ๋ 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
* a์ b์ ๋ด์ ์ 1*(-3) + 2*(-1) + 3*0 + 4*2 = 3 ์
๋๋ค.
์
์ถ๋ ฅ ์ #2
* a์ b์ ๋ด์ ์ (-1)*1 + 0*0 + 1*(-1) = -2 ์
๋๋ค.
a | b | result |
---|---|---|
[1,2,3,4] | [-3,-1,0,2] | 3 |
[-1,0,1] | [1,0,-1] | -2 |
๋ฌธ์ ํ์ด
i๋ฅผ a์ ๋ฐ์ดํฐ ๊ฐ์๋งํผ(0,1,2,3) ์ฆ๊ฐ์ํจ๋ค. sum์ a[0~3] * b[0~3]์ ์ ์ฅ์ํจ๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก 1*-3 / 2*-1 / 3*0 / 4*2 ์ -1*1 / 0*0 / 1*-1 ๊ฐ ์ ์ฅ๋๋ค.
function solution(a, b) {
let sum = 0;
for(let i=0; i < a.length; i++){
sum += a[i]*b[i];
}
return sum;
}
๋ค๋ฅธ ํ์ด ๋ฐฉ์
reduce๋ก ํ ์ค๋ก ํ์ด๋ด๋ ๋ฐฉ์์ด ์๋ค.
function solution(a, b) {
return a.reduce((acc, _, i) => acc += a[i] * b[i], 0);
}
๋๊ธ