알고리즘

달팽이

              2017. 9. 24. 15:16

달팽이 모양으로 배열을 만들고 그것을 1차원 배열로 반환하는 문제이다.


이것을

[[1,2,3]

,[8,9,4]

,[7,6,5]]

 

이런식으로 바꾸는 것이다.

[1,2,3,4,5,6,7,8,9]




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function snail(array) {
  if(array.length < 2return array[0];
  
  var result = [];
  var check = 0;
  
  while(array.length > 0) {
    switch(check) {
      case 0: result.push(...array.shift()); break;
      case 1for(var i = 0; i < array.length; i++) result.push(array[i].pop()); break;
      case 2: result.push(...array.pop().reverse()); break;
      case 3for(var i = array.length-1; i > -1; i--) result.push(array[i].shift()); break;
    }
    check = check > 3 ? 0 : check+1;
  }
  return result;
}
cs