티스토리 뷰
https://programmers.co.kr/learn/courses/30/lessons/12950
코딩테스트 연습 - 행렬의 덧셈
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요
programmers.co.kr
이중 for문
function solution(arr1, arr2) {
const answer = []
for(let i = 0; i < arr1.length; i++) {
const sum = []
for(let j = 0; j < arr1[i].length; j++) {
sum.push(arr1[i][j] + arr2[i][j])
}
answer.push(sum)
}
return answer
}
- for문으로 배열 순회(i) => [1,2], [2,3]
- for문으로 순회한 배열 안의 원소 순회(j)
- 입력된 두 배열의 [i][j]번째 원소를 더해 임의의 배열(sum)에 push
- i번째 배열의 각 원소를 더해 만든 배열을 다시 새로운 배열(answer)에 push
- answer 반환
map 메서드
function solution(arr1, arr2) {
return arr1.map((x, i) => x.map((y, j) => y + arr2[i][j]))
}
- arr1의 원소 값에 arr2의 원소 값을 더한 새로운 배열을 반환 (i와 j는 인덱스)
- map을 사용하니 보기에는 간결하지만 가독성은 for문이 좋은 것 같다.
- 행렬 arr1, arr2의 행과 열의 길이가 500이 넘지 않아서 그런지 여기서는 성능 면에서도 큰 차이 없어 보인다.
'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 1단계 - 문자열 내 p와 y의 개수 (javascript) (0) | 2022.07.17 |
---|---|
[프로그래머스] 1단계 - 평균 구하기 (javascript) (0) | 2022.07.13 |
[프로그래머스] 1단계 - 문자열 내 마음대로 정렬하기 (javascript) (0) | 2022.07.13 |
[프로그래머스] 1단계 - 핸드폰 번호 가리기 (javascript) (0) | 2022.05.31 |
[프로그래머스] 1단계 - x만큼 간격이 있는 n개의 숫자 (javascript) (0) | 2022.05.27 |
댓글