728x90
반응형

행렬의 덧셈
문제설명 :
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
제한 사항
- 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
입출력 예
arr1 | arr2 |
result |
[[1, 2], [2, 3]] | [[3, 4], [5, 6]] | [[4, 6], [7, 9]] |
[[1], [2]] | [[3], [4]] | [[4], [6]] |
첫번째 접근
: 두 개의 for문을 사용해 문제를 해결했다. 먼저 arr1의 각 요소의 index(i)와 요소 내 요소의 index(j)를 구한 후 동인 인덱스(i, j)의 요소를 더해 배열(arr)에 담아준 후 다시 answer 배열에 push했다.
function solution(arr1, arr2) {
let answer = []
for(let i=0; i<arr1.length; i++){
let arr = []
for(let j=0; j<arr1[i].length; j++){
arr.push(arr1[i][j] + arr2[i][j])
}
answer.push(arr)
}
return answer
}
두 번째 접근
: index가 필요한 거라면 forEach를 사용해서 문제를 해결 할 수 있을 듯 하다.
function solution(arr1, arr2) {
let answer = []
arr1.forEach((el, i) => {
let arr = []
el.forEach((_,j) => {
arr.push(arr1[i][j] + arr2[i][j])
})
answer.push(arr)
})
return answer
}
solution
function solution(arr1, arr2) {
return arr1.map((el, i) => el.map((item, j) => item + arr2[i][j]))
}
// map이 새로운 배열을 봔한하는 성질을 이용했다.
// arr1을 map으로 돌린 후 arr1의 각 요소를 map을 돌리며 arr2의 해당 index 요소와 더해준다.
오.. 멋있다.
728x90
반응형
'자료구조 및 알고리즘 > JavaScript Practice' 카테고리의 다른 글
JS Practice) 프로그래머스 Lv.1 : 같은 숫자는 싫어 (0) | 2023.06.22 |
---|---|
JS Practice) 프로그래머스 Lv.1 : 3진법 뒤집기 (0) | 2023.06.21 |
JS Practice) 프로그래머스 Lv.1 : 문자열 다루기 기본 (1) | 2023.06.20 |
JS Practice) 프로그래머스 Lv.1 : 부족한 금액 계산하기 (0) | 2023.06.19 |
JS Practice) 프로그래머스 Lv.1 : 문자열 내림차순으로 배치하기 (0) | 2023.06.16 |