본문 바로가기
나의 개발일지/알고리즘 테스트

[프로그래머스 - Level 1] 내적 (JS)

by stella_gu 2022. 7. 18.

[문제]

길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다.

a와 b의 내적을 return 하도록 solution 함수를 완성해주세요.

 

   [a, b, c]

+ [d, e, f]

 (a*d) + (b*e) + (c*f)

 

 

[로직]

1. 배열의 길이가 같으로므 for문을 돌려 [i]번째 인덱스를 가져와 곱한다.

2. answer라는 변수를 만들어 곱한 값을 하나씩 더해준다. 

 

 

[코드]

function solution(a, b) {
  let answer = 0;
  for (i = 0; i < a.length; i++) {
    answer += a[i]*b[i];
  }
  return answer;
}


const a = [1,2,3,4];
const b = [-3,-1,0,2];

const c = [-1,0,1];
const d = [1,0,-1];

console.log(solution(a,b));	// 결과 값 : 3
console.log(solution(c,d));	// 결과 값 : -2

1. 배열의 길이가 같으로므 for문을 돌려 [i]번째 인덱스를 가져와 곱한다.

for (i = 0; i < a.length; i++) {
    a[i]*b[i];

}

 

2. answer라는 변수를 만들어 곱한 값을 하나씩 더해준다. 

let answer = 0;
 for (i = 0; i < a.length; i++) {
    answer += a[i]*b[i];
  }

 

3. answer를 return해주면 完成!
let answer = 0;
  for (i = 0; i < a.length; i++) {
    answer += a[i]*b[i];
  }  

  return answer;

 

 

 

 

 

 

다른 사람들은 어떻게 풀었나

function solution(a, b) {
  return a.reduce((acc, cur, idx) => acc += cur*b[idx], 0)
}

reduce()에 인덱스 넘버도 넣을 수 있군...

다시 찾아 보자!!