https://programmers.co.kr/learn/courses/30/lessons/12950
[문제]
더보기
문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 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]] |
[풀이]
2020.03.17
function solution(arr1, arr2) {
var answer = Array();
for (var i = 0; i < arr1.length; i++) {
answer[i] = [];
for ( var j = 0; j < arr1[0].length; j++) {
answer[i][j] = arr1[i][j] + arr2[i][j];
}
// console.log(answer);
}
return answer;
}
해당 문제에서 원하는 답의 형식은 아래와 같다.
answer[0][0] = arr1[0][0] + arr2[0][0];
answer[0][1] = arr1[0][1] + arr2[0][1];
answer[1][0] = arr1[1][0] + arr2[1][0];
answer[1][1] = arr1[1][1] + arr2[1][1];
따라서 맨 처음 빈 배열의 answer를 생성한 후, for문으로 answer[i]를 반복하여 배열 안의 배열을 선택하고, 해당 for문 안에 [j]으로 배열 안의 element를 선택한다.
만약 answer가 answer[1][1]까지 존재한다면, for문은 아래와 같이 나온다.
// var arr1 = [[1, 2], [3, 4]];
// var arr2 = [[2, 4], [6, 8]];
// arr1, arr2를 위와 같다고 가정하고 solution(arr1, arr2)를 돌렸을 경우,
function solution(arr1, arr2) {
var answer = Array();
for (var i = 0; i < arr1.length; i++) {
answer[i] = [];
// answer[0] = [];
// answer[1] = [];
for ( var j = 0; j < arr1[0].length; j++) {
// j는 arr1[0].length, 즉 2이다
answer[i][j] = arr1[i][j] + arr2[i][j];
// answer[0][0] = arr1[0][0] + arr2[0][0]; // answer[0][0] = 1 + 2 = 3
// answer[0][1] = arr1[0][1] + arr2[0][1]; // answer[0][1] = 2 + 4 = 6
// answer[1][0] = arr1[1][0] + arr2[1][0]; // answer[1][0] = 3 + 6 = 9
// answer[1][1] = arr1[1][1] + arr2[1][1]; // answer[1][1] = 4 + 8 = 12
}
// console.log(answer);
// answer = [[3, 6], [9, 12]];
}
return answer;
}
solution(arr1, arr2);
// output:
// [Array(2)]
// 0: (2) [3, 6]
// 1: (2) [9, 12]
'■ 프로그래밍 > 프로그래머스' 카테고리의 다른 글
[자바스크립트/Lv1] 문자열 내 p와 y의 개수 (0) | 2020.03.19 |
---|---|
[자바스크립트/Lv1] 같은 숫자는 싫어 (0) | 2020.03.18 |
[자바스크립트/Lv1] 짝수와 홀수 (0) | 2020.03.16 |
[자바스크립트/Lv1] 수박수박수박수박수박수? (0) | 2020.03.15 |
[자바스크립트/Lv1] 핸드폰 번호 가리기 (0) | 2020.03.14 |