arr[i][j] === 'B'
라면 결과는 [i, j]
arr
의 요소(배열)를 순회하는 반복문 선언 (i
를 통해서 0번 인덱스부터 arr
배열의 길이만큼 반복)arr[i]
의 요소를 순회하는 반복문 선언(j
를 통해서 0번 인덱스부터 arr[i]
배열의 길이만큼 반복)arr[i][j]
요소가 B
와 같을 경우(if 조건문) i
와 j
를 결과 배열에 담아줌 function findBugInApples(arr) {
const result = []
for(let i = 0; i < arr.length ; i++) {
for (let j = 0; j < arr[i].length ; j++) {
if(arr[i][j] === 'B') {
result.push(i, j)
}
}
}
return result
}
for반복문을 forEach()
로 바꿔서 풀어보았다.
function findBugInApples(arr) {
let result = [];
arr.forEach((row, i) =>
row.forEach((el, j) => {
if (el === 'B') {
result.push(i, j);
}
})
);
return result;
}
문제 설명
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
제한 조건
행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
arr1[i][j]
와 같은 위치에 있는 arr2[i][j]
를 더한 값을 합계 배열넣어준다. function solution(arr1, arr2) {
let result = []
for (let i = 0; i < arr1.length ; i++) {
let sum = [];
for(let j = 0 ; j < arr1[i].length; j++) {
sum.push(arr1[i][j] + arr2[i][j]);
}
result.push(sum);
}
return result
}
합계 배열을 따로 선언하지 않고 result[i]에 빈 배열을 할당한 다음, 바로 값을 담아줄 수도 있다.
function solution(arr1, arr2) {
let result = []
for (let i = 0; i < arr1.length ; i++) {
result[i]= [];
for(let j = 0 ; j < arr1[i].length; j++) {
result[i].push(arr1[i][j] + arr2[i][j]);
}
}
return result
}
레퍼런스 코드를 참고해, 고차함수를 사용해서 풀어봤다. arr1의 원소인 배열을 map함수를 이용해서 row로 받고 다시 이 row배열에 map함수를 써서 원소에 접근한다. 그 다음, 각각 인덱스(row들의 인덱스 i와, el들의 인덱스 j)를 통해 arr2[i][j]원소에 접근해서 합을 구한다.
function solution(arr1, arr2) {
let answer = arr1.map((row, i) => {
return row.map((el, j) => {
return el + arr2[i][j]
})
})
return answer
}