행렬의 덧셈
문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
제한 조건
- 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
입출력 예
arr1 | arr2 | return |
[[1,2],[2,3]] | [[3,4],[5,6]] | [[4,6],[7,9]] |
[[1],[2]] | [[3],[4]] | [[4],[6]] |
초기화면
function solution(arr1, arr2) {
var answer = [[]];
return answer;
}
글쓴이 풀이
function solution(arr1, arr2) {
// 1차 배열의 길이를 담은 a
for(a in arr1){
// 2차 배열의 길이를 담은 b
for(b in arr1[a]){
// arr1[a][b] 에 arr2[a][b]를 더합니다
arr1[a][b] += arr2[a][b];
}
}
return arr1;
}
다른 유저의 풀이
function solution(arr1, arr2) {
// a는 1차원 배열의 값 i는 배열의 인덱스 값
// b는 2차원 배열의 값 j는 2차원 배열의 인덱스 값
return arr1.map((a,i) => a.map((b, j) => b + arr2[i][j]));
}
처음 arr1.map의 a는 1차원 배열 안의 값을 나타내고 i는 1차원 배열의 인덱스를 나타냅니다
그리고 a.map은 1차원 배열에서 map을 사용해 2차원 배열에 접근했고 b는 2차원 배열 안에 값을 나타내고 j는 2차원 배열의 인덱스를 나타냅니다
b + arr2[i][j]는 2차원 배열 안에 있는 값 b와 같은 행 같은 열의 길이를 가지고 있는 arr2와 같은 위치의 값을 더할 수 있습니다
느낀 점
어려운 문제는 아니지만 알고리즘의 대해서 더 공부해서 최적의 답을 알아야 한다고 느끼는 문제였습니다
'공부 > 알고리즘' 카테고리의 다른 글
[ JS 코딩테스트 ] 최대공약수와 최소공배수 (0) | 2021.06.14 |
---|---|
[ JS 코딩테스트 ] x만큼 간격이 있는 n개의 숫자 (0) | 2021.06.14 |
[ JS 코딩테스트 ] 핸드폰 번호 가리기 (0) | 2021.06.14 |
[ JS 코딩테스트 ] 평균 구하기 (0) | 2021.06.13 |
[ JS 코딩테스트 ]짝수와 홀수 (0) | 2021.06.12 |