[프로그래머스] 행렬의 덧셈

지윤·2023년 1월 28일
0

프로그래머스

목록 보기
54/69

문제

풀이

노트

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

행렬..ㅋㅋㅋㅋ 내가 알던 그 행렬 맞나..? 고작 덧셈 주제에 나를 힘들게 했다...ㅎㅎㅎㅎ
어제 이중 for문을 공부해서 다행..ㅎ 콘솔찍어가면서 값보고 돌렸다..
아니.. 너무 어려워요.....

//예제 arr1 = [[1,2],[2,3]] arr2 =[[3,4],[5,6]]
function solution(arr1, arr2) {
    let answer = [];	// 빈배열 만들기
    for(let i=0; i <arr1.length; i++){ 
      //배열의 길이만큼 돌린다. 크기가 같은 두 행렬의 덧셈이기 때문에 arr1.length로 돌리나 arr2.length로 돌리나 상관없다.
      //arr1.length는 2이다. arr[0] = [1,2] / arr[1] = [2,3]
      
        answer[i] = [];	//2차원 빈 배열을 하나 만들어 준다.
      
      // answer[0] 안에 [] 만들고, answer[1] 안에 []만들고 이런식이다..
      //여기서는 [[],[]] 이렇게 만들어줌
        for(let j=0; j<arr1[i].length; j++){ 
          //arr1[i]의 길이만큼 돌린다.
          //이것도 arr2[i].length라고 해도 무방하다.
          //여기서 arr[0]의 length는 2, arr[0] = [1,2]
          //arr[0][0] 은 1, arr[0][1]은 2
            answer[i][j] = arr1[i][j] + arr2[i][j];
          
          //arr1[0] = [1,2]
          //arr1[0][0] = 1
          //arr2[0] = [3,4]
          //arr2[0][0] = 3
          //answer[0][0] = 4
          //현재 answer 배열 [[4],[]]
          // ...
          //arr1[0][1] = 2
          //arr2[0][1] = 4
          //answer[0][1] = 6
          //현재 answer 배열[[4,6],[]]
          //length만큼 돌았으니까 바깥 for문으로 간다.
          //arr1[1][0] + arr2[1][0]으로 다시 시작
        }
    }
  //answer에는 [[4,6],[7,9]]
    return answer;
}

역시 콘솔찍어보는게 최고! 같은 index가 필요할때 for문을 돌려야 하는걸 알았기때문에 for문을 돌려야겠구나 생각을 했지만.. 이중 for문은 아직 너무 어렵다. 계속 해보고 익숙해져야지!

profile
방금 태어난 개발자

0개의 댓글