SECTION
Published 2020. 3. 15. 23:23
[Codewar] Snail PS/Codewar

https://www.codewars.com/kata/521c2db8ddc89b9b7a0000c1/java

 

Codewars: Train your coding skills

Codewars is where developers achieve code mastery through challenge. Train on kata in the dojo and reach your highest potential.

www.codewars.com

1.  

2. Snail Sort

Given an n x n array, return the array elements arranged from outermost elements to the middle element, traveling clockwise.

<java />
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:

<java />
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 [[]].

 

 

 

2.0.1. Solution

: 이전에 풀었던 달팽이 문제랑 비슷해서 이전껄 참고했다.

 

<java />
public class Snail { public static int[] snail(int[][] array) { int N= array.length; int[] list = new int[N*N]; int cnt = 0, inc = 1; int a = 0, b = -1; if(array[0].length <= 0) { return new int[0]; } for(; N>0;) { for(int i=0; i<N; i++){ b+=inc; list[cnt] = array[a][b]; cnt++; } N--; for(int i=0; i<N; i++){ a+=inc; list[cnt] = array[a][b]; cnt++; } inc*=-1; } return list; } }
profile

SECTION

@SectionR0

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그