[TIL] 241121 (프로그래머스 특별한 이차원 배열 1)

·2024년 11월 21일

TIL

목록 보기
226/268
post-thumbnail

오늘 한 일

  • 알고리즘 코드카타
    • 특별한 이차원 배열 1

알고리즘 코드카타

특별한 이차원 배열 1

문제

정수 n이 매개변수로 주어질 때, 다음과 같은 n × n 크기의 이차원 배열 arr를 return 하는 solution 함수를 작성해 주세요.

  • arr[i][j] (0 ≤ i, j < n)의 값은 i = j라면 1, 아니라면 0입니다.

풀이

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() 메서드를 사용하는 것은 나도 생각은 했지만 어떻게 사용하는지를 모르겠어서 사용하지 못 했다. 확실히 훨씬 간단하게 문제를 풀 수 있을 것 같아서 잘 알아둬야할 것 같다.

profile
웹 프론트엔드 개발자

0개의 댓글