알고리즘
달팽이
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 < 2) return array[0]; var result = []; var check = 0; while(array.length > 0) { switch(check) { case 0: result.push(...array.shift()); break; case 1: for(var i = 0; i < array.length; i++) result.push(array[i].pop()); break; case 2: result.push(...array.pop().reverse()); break; case 3: for(var i = array.length-1; i > -1; i--) result.push(array[i].shift()); break; } check = check > 3 ? 0 : check+1; } return result; } | cs |