정수 n이 매개변수로 주어질 때, 다음과 같은 n × n 크기의 이차원 배열 arr를 return 하는 solution 함수를 작성해 주세요.
function solution(n) {
const result = [];
for (let i = 0; i < n; i++) {
result.push([]);
for (let j = 0; j < n; j++) {
if (j === i) {
result[i].push(1);
} else {
result[i].push(0);
}
}
}
return result;
}
문제가 바라는 대로(?) 정직한 풀이를 했다. n만큼 빈 배열을 만들고 내부 요소는 i와 j가 같을 경우에는 1을, 아닐 경우에는 0을 push하여 풀었다.
function solution(n) {
const answer = Array.from(Array(n), () => Array(n).fill(0));
for (let i = 0; i < n; i++) {
answer[i][i] = 1;
}
return answer;
}
Array.from() 메서드를 사용하는 것은 나도 생각은 했지만 어떻게 사용하는지를 모르겠어서 사용하지 못 했다. 확실히 훨씬 간단하게 문제를 풀 수 있을 것 같아서 잘 알아둬야할 것 같다.