Recent Posts
Recent Comments
Link
Today
Total
01-27 18:06
관리 메뉴

채린씨의 티스토리

[Programmers] Level1 - 행렬의 덧셈(JavaScript) 본문

코딩테스트 대비

[Programmers] Level1 - 행렬의 덧셈(JavaScript)

채린씨 2022. 3. 22. 12:10

문제 설명

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.

 

제한 조건

  • 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.

 

입출력 예

arr1 arr2 return
[[1,2],[2,3]] [[3,4],[5,6]] [[4,6],[7,9]]
[[1],[2]] [[3],[4]] [[4],[6]]

 

 


 

나의 풀이

2중 for문을 사용해서 간단히 풀 수 있다.

function solution(arr1, arr2) {
  var answer = [];

  for (let i = 0; i < arr1.length; i++) {
    let ans_row = [];
    for (let j = 0; j < arr1[0].length; j++) {
      ans_row.push(arr1[i][j] + arr2[i][j]);
    }
    answer.push(ans_row);
  }
  
  return answer;
}

 

좋았던 다른 사람의 풀이

처음에는 엥.. 이게 뭐야.. 했지만, 1분 정도 들여다보고 오!! 와!! 했던 풀이!! A(2중 배열)의 각 행(배열)을 a라고 하고, 또 그 a(배열)의 각 요소를 b라고 하고, 각 b에 B(2중 배열)의 각 요소를 더해주면 됨!! .map이 꽤나 유용한 메서드인 것 같다! https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/map

 

Array.prototype.map() - JavaScript | MDN

map() 메서드는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다.

developer.mozilla.org

function sumMatrix(A, B) {
  return A.map((a, i) => a.map((b, j) => b + B[i][j]));
}

 


프로그래머스 문제들의 자바스크립트 풀이가 궁금하신가요? 아래 링크를 클릭해보세요!

https://programmers-solution-bank.netlify.app/

 

프로그래머스 해설 은행

 

programmers-solution-bank.netlify.app

 

 

 

Comments