JavaScript 2차원 배열

hyeonyohwan·2021년 6월 12일

얼마 전에 면접을 보고 왔는데 정말 기초적인 2차원 배열에 관련된
손코딩 문제를 내주셨다.
하지만 당황한 나머지 머리가 새까매졌고 너무너무너무 기초적인 것임에도 불구하고 머리 속으로 매우 복잡하게 알고리즘을 그려나갔다.

function question(){
  var arr = [[1,2,3,],[4,5,6],[7,8,9]];
  var answer = '';
  for(var i = 0; i < arr.length; i++){
    for(var j = 2; j >= 0; j--){
      answer += arr[j][i];
    }
  }

  console.log(answer);
}

question();
// answer = 741852963

웹 프론트엔드 관련하여 면접을 보러 간 것이기 때문에 자바스크립트로 풀려고 했지만 2차원 배열을 만드는 법이 기억이 안 나서 우왕좌왕하다가 자바로 풀었던 것 같다.
그런데 웃긴 사실은, 배열을 만들 필요가 없고 주어진 배열만 받아서 출력하면 되는 것이기 때문에 자바스크립트던지 자바이던지 아무 상관이 없었다. ㅎㅎㅎ

면접을 여러 번 보고 와서 긴장을 어느 정도 많이 안 한다고 생각하였는데 이런 간단한 문제도 헤맨 것을 보면 아직 많이 떨리나보다...

아무튼 문제는 아래에서 위로, 왼쪽에서 오른쪽으로 값들이 차례대로 출력하게끔 하는 것이다.
난 j-i+2 막 이러면서 복잡하게만 생각했는데 거기 계신 이사님께서 틀을 직접 그려주시니까 30초만에 풀었던 것 같다.

오늘의 교훈 - 긴장이 되면 심호흡을 하고 문제를 단순하게 생각하자!!

(추가로 자바스크립트 2차원 배열 생성은 아래와 같다)

function create2DArray(rows, columns) {
    var arr = new Array(rows);
    for (var i = 0; i < rows; i++) {
        arr[i] = new Array(columns);
    }
    return arr;
}

var arr = create2DArray(5,5);
console.log(arr);
// (5) [(5) [...], (5) [...], (5) [...], (5) [...], (5) [...]]
profile
웹 프론트엔드 개발자입니다.

0개의 댓글