[TIL]24.02.07

sssujijjl·2024년 2월 8일

[TIL]

목록 보기
32/51

[문제]

  • 행렬의 덧셈 : 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다.
    2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 return

[코드]

function solution(arr1, arr2) {
    let result = [];

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

반복문을 2번 사용해서 배열안에 있는 값을 찾아서 더해주었다.
더 간단하게 사용하고 싶어서 여러가지 고민을 해봤는데 아직은 반복문이 좋은거같다.

[다른 사람 풀이]

function sumMatrix(A,B){
    return A.map((arr1, idx1) => arr1.map((val, idx2) => val+B[idx1][idx2]));
}

A.map : 배열 A의 각 행에 대해 함수를 적용
arr1 : 배열 A의 각 행

arr1.map : 현재 행의 각 요소에 대해 함수를 적용
val : 현재 요소의 값
idx2 : 현재 요소의 인덱스

val + B[idx1][idx2] : 배열 B에서 같은 위치의 요소를 가져와 현재 요소의 값과 더하기

A.map과 arr1.map을 통해 새로운 2차원 배열이 생성

arr1.map((v, i) => v.map((v2, j) => v2 + arr2[i][j]))

해당 풀이의 댓글에 누가 적어둔 내용인데 반복문이 익숙한 사람이라면 조금 더 이해하기 쉬울 꺼 같다.

0개의 댓글