과거 프로그래밍 자료들/코딩테스트

[자바스크립트] 프로그래머스 - 행렬의 덧셈

평부 2022. 6. 23. 10:43

* 출처

https://programmers.co.kr/learn/courses/30/lessons/12950

 

코딩테스트 연습 - 행렬의 덧셈

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

programmers.co.kr

 

문제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
* 문제
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 
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]]
 
* 문제
function solution(arr1, arr2) {
    var answer = [[]];
    return answer;
}
cs

 

풀이

- [[]] 안에 들어갈 값을 따로 분리해서 넣기

- answer[i] = []로 만들어 그 값을 넣기

1
2
3
4
5
6
7
8
9
10
11
12
function solution(arr1, arr2) {
    var answer = [[]];
    for(let i=0; i<arr1.length; i++) {
        answer[i] = [];
        for(let j=0; j<arr1[i].length; j++) {
            answer[i].push(arr1[i][j] + arr2[i][j]) 
            //answer.push(arr1[i][j] + arr2[i][j]) 실행 시
            //[[],[],6,7,9], [[],[],6]로 나옴
        }
    }
    return answer;
}
cs

 

다른 풀이

1
2
3
function solution(arr1, arr2) {
   return arr1.map((e,i) => arr2[i].map((v,j) => arr1[i][j]+arr2[i][j]))
}
cs