## Snail Sort
Given an `n x n` array, return the array elements arranged from outermost elements to the middle element, traveling clockwise.
```
array = [[1,2,3],
         [4,5,6],
         [7,8,9]]
snail(array) #=> [1,2,3,6,9,8,7,4,5]
```
For better understanding, please follow the numbers of the next array consecutively:
```
array = [[1,2,3],
         [8,9,4],
         [7,6,5]]
snail(array) #=> [1,2,3,4,5,6,7,8,9]
```
This image will illustrate things more clearly:
NOTE: The idea is not sort the elements from the lowest value to the highest; the idea is to traverse the 2-d array in a clockwise snailshell pattern.
NOTE 2: The 0x0 (empty matrix) is represented as en empty array inside an array `[[]]`.
def trans(array):
    #Do an inverse transpose (i.e. rotate left by 90 degrees
    return [[row[-i-1] for row in array] for i in range(len(array[0]))] if len(array)>0 else array

def snail(array):
    output=[]
    
    while len(array)>0:

        #Add the 1st row of the array
        output+=array[0]
        #Chop off the 1st row and transpose
        array=trans(array[1:])
        
    return output
def trans(array):
    #Do an inverse transpose (i.e. rotate left by 90 degrees
    return [[row[-i-1] for row in array] for i in range(len(array[0]))] if len(array)>0 else array

def snail(array):
    output=[]
    
    while len(array)>0:

        #Add the 1st row of the array
        output+=array[0]
        #Chop off the 1st row and transpose
        array=trans(array[1:])
        
    return output