[알고리즘/Programmers] 행렬의 덧셈

문제 설명

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


제한 조건

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


입출력 예시


이 문제는 다른분들이 푸신 내용을 공부했다.

1. 빈 배열을 선언 한 후, 그 배열에 계산한 배열을 push하는 법

function solution(arr1, arr2) {
    var answer = [];
    
    for(let i = 0; i<arr1.length; i++){
        let newArr = []; // 이 배열은 아래에 추가 하면 안된다 ---> 왜?
      // 아래에서 돌게 될 경우 newArr =[]이 계속 빈 배열이 되기때문에 마지막 값만 남아서
      // 위에서 새 배열을 만들어 준 다음 각 배열의 length 만큼 돌게되는동안 push가 되고
      // 다 돌고 난 뒤 새 배열에 push 해준다.
      // 처음에는 아래애 넣어서 오류났다 ㅎㅎ..
      
        for(let k = 0; k<arr1[i].length; k++){
            newArr.push(arr1[i][k] + arr2[i][k] )
        } answer.push(newArr)
    }    
    return answer;
}

2. map으로 푸는 법 (프로그래머스 다른분 풀이)

function solution(arr1, arr2) {
return arr1.map((a,i) => a.map((b, j) => b + arr2[i][j]));
}

for문으로 푼 코드를 이렇게 간결하게 쓸 수 있다니..
이 풀이를 보고 map에 대해서 다시 공부했고
어떤방식으로 풀어지는건지 다시 확인했다.
map에 대해서 조금 더 공부를 해봐야겠다.



Array()

let fruits = Array(2)
console.log(fruits) // [empty × 2]
-
fruits[0] = 1
console.log(fruits) // [1, empty]

처음보는 방식의 배열방식
Array로 배열 자릿수 정해놓고 그 안에다가 집어넣는 형식인듯하다

map

array.map((a,b) => )
배열.map((요소, 인덱스) =>  return 요소 )

a는 인자, b는 index
여태까지는 인자만 쓰는 방식으로 사용했는데 index도
쓰는방법을 알게 되었다.
추가로 배열까지 사용 하는 부분도 있었다.
MDN MAP 설명

좋은 웹페이지 즐겨찾기