얼마 전에 면접을 보고 왔는데 정말 기초적인 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) [...]]