- 문제
https://www.acmicpc.net/problem/2738
2738번: 행렬 덧셈
첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같
www.acmicpc.net
- 문제접근
2차원 배열 문제를 처음 접했다.
예제 입력이 까다로워보였다. 예제 입력만 잘 받으면 문제없이 해결할 수 있을 것이라 생각했다.
- 내 풀이
const input = require("fs")
.readFileSync("dev/stdin")
.toString().trim()
.split("\n");
const [hang, yul] = input
.shift()
.split(" ")
.map((i) => +i);
const a = [];
const result = [];
input.forEach((line) => {
const lineArr = line.split(" ").map((i) => +i);
a.push(lineArr);
});
const b = a.splice(hang, hang);
for (let i = 0; i < hang; i++) {
const smallA = a[i];
const smallB = b[i];
const arr = [];
for (let j = 0; j < yul; j++) {
const f = smallA[j] + smallB[j];
arr.push(f);
}
result.push(arr);
}
result.map((i) => console.log(i.join(" ")));
- 비고
생각보다 오랜시간에 걸려 겨우 맞았다.
계속되는 런타임에러(TypeError) 때문에 trim() 을 넣어보기도 했고, vscode나 codesandbox에서도 코드를 다시 돌려보기도 했다.
그렇게 한참을 고민하다가 알게된건, 행과 열을 반대로 입력했었기 때문이었다는 것을 알게되었다.
수정하고나니 오류없이 정상 동작했다.
'기타 > 알고리즘(백준)' 카테고리의 다른 글
[JS] 백준 2563 색종이 (0) | 2022.11.30 |
---|---|
[js] 백준 1929번 소수구하기 (0) | 2022.11.22 |
[JS] 백준 1193번 분수 찾기 (0) | 2022.10.25 |
[JS] 백준 1157 단어 공부(중복되는 문자열 개수 세는 법) (0) | 2022.10.13 |
[JS] 백준 3052번 나머지 (배열 중복 요소 제거 방법 세 가지) (0) | 2022.09.29 |