행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 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) {
let result = [];
for (let i = 0; i < arr1.length; i++) {
let new_arr = [];
for (let j = 0; j < arr1[0].length; j++) {
new_arr.push(arr1[i][j] + arr2[i][j]);
}
result.push(new_arr);
}
return result;
}
// map 으로 해보기 -> 처음에 null 값을 주었던 이유가 return을 빼고 입력....
function solution(arr1, arr2) {
return arr1.map((item1, i) =>
item1.map((item2, j) => {
return item2 + arr2[i][j];
})
);
}
😊 문제풀이 답안 OR 다른사람들 답안
// forEach
function solution(arr1, arr2) {
const answer = [];
arr1.forEach((arr, i) => answer.push(arr.map((v, j) => v + arr2[i][j])));
return answer;
}
// map
function sumMatrix(A,B){
return A.map((a,i) => a.map((b,j) => A[i][j] + B[i][j]))
}
// for-in
function solution(arr1, arr2) {
let answer = [];
for (i in arr1){
let tempArr = [];
for(j in arr1[i]){
let tempNum = arr1[i][j] + arr2[i][j];
tempArr.push(tempNum);
}
answer.push(tempArr);
}
return answer;
}
- for - in 문
- 주로 객체의 반복에 사용됨
- 객체의 열거가능한(enumberable === true)속성에 대해 반복함
- 순서를 보장할 수 없기 때문에, Array의 반복에는 사용하지 말라고 안내하고 있음
- for(variable in object) {...}
variable - 해당 객체의 열거 가능한 속성 이름
object - 반복문을 수행할 객체
'공부 > 코딩테스트' 카테고리의 다른 글
Q. 부족한 금액 계산하기 (0) | 2023.06.17 |
---|---|
Q. X만큼 간격이 있는 n개의 숫자 (0) | 2023.06.17 |
Q. 핸드폰 번호 가리기 (0) | 2023.06.16 |
Q. 평균 구하기 (0) | 2023.06.16 |
Q. 음양 더하기 (0) | 2023.06.16 |