[백준 2738] 냅다 시작 Day8 - 2차원 배열

김민지·2023년 1월 1일
0

냅다 시작 백준

목록 보기
20/118

[백준 2738] 2차원 배열 1단계. 행렬 덧셈

✨ 문제 ✨

N*M크기의 두 행렬 A와 B가 주어졌을 때, 두 행렬을 더하는 프로그램을 작성하시오.

= 입력 =

첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같고, 행렬의 원소는 절댓값이 100보다 작거나 같은 정수이다.

= 출력 =

첫째 줄부터 N개의 줄에 행렬 A와 B를 더한 행렬을 출력한다. 행렬의 각 원소는 공백으로 구분한다.

= 예제 입력 1 =

3 3
1 1 1
2 2 2
0 1 0
3 3 3
4 4 4
5 5 100

= 예제 출력 1 =

4 4 4
6 6 6
5 6 100

✨ 정답 ✨

// const { json } = require("express/lib/response");
// const fs = require("fs");
// const filePath = process.platform === "linux" ? "/dev/stdin" : "./예제.txt";
// let input = fs.readFileSync(filePath).toString().split("\n");
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');

let N=parseInt(input[0].split(' ')[0])
let M=parseInt(input[0].split(' ')[1])

let array1=new Array(N);
for (let i=0;i<array1.length;i++){
    array1[i]=new Array(M)
}
let array2=new Array(N);
for (let i=0;i<array2.length;i++){
    array2[i]=new Array(M)
}
let answer=new Array(N);
for (let i=0;i<answer.length;i++){
    answer[i]=new Array(M)
}



for (i=0;i<N;i++){
    let input2=input[i+1].trim().split(' ')
    for (j=0;j<M;j++){
        array1[i][j]=parseInt(input2[j])
    }
}

for (i=N+1;i<input.length;i++){
    let input2=input[i].trim().split(' ')
    for (j=0;j<M;j++){
        array2[i-N-1][j]=parseInt(input2[j])
    }
}

for (i=0;i<N;i++){
    for (j=0;j<M;j++){
        answer[i][j]=array1[i][j]+array2[i][j]
    }
}

for (i=0;i<N;i++){
    console.log(answer[i].join(' '))
}

// console.log(array1)
// console.log(array2)

💡💡 기억해야 할 점

  1. n차원 배열 만드는 법 헷갈리면 안 된다.
profile
이건 대체 어떻게 만든 거지?

0개의 댓글