Knowledge Map

달팽이 본문

알고리즘

달팽이

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


'알고리즘' 카테고리의 다른 글

HackerRank - Super Reduced String  (0) 2017.10.23
HackerRank - Between Two Sets  (0) 2017.10.22
2차원 배열의 체크 알고리즘 문제  (0) 2017.09.13
테스트 문제 (1)  (2) 2017.09.06
각 자릿수 합  (0) 2017.09.01
Comments