SECTION
Published 2019. 11. 16. 22:15
[Codewar] The Clockwise Spiral PS/Codewar

https://www.codewars.com/kata/the-clockwise-spiral/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

 

Do you know how to make a spiral? Let's test it!


Classic definition: A spiral is a curve which emanates from a central point, getting progressively farther away as it revolves around the point.

 

 

Your objective is to complete a function createSpiral(N) that receives an integer N and returns an NxN two-dimensional array with numbers 1 through NxN represented as a clockwise spiral.

Return an empty array if N < 1 or N is not int / number

 

Examples:

N = 3 Output: [[1,2,3],[8,9,4],[7,6,5]]

1    2    3    
8    9    4    
7    6    5    
N = 4 Output: [[1,2,3,4],[12,13,14,5],[11,16,15,6],[10,9,8,7]]

1   2   3   4
12  13  14  5
11  16  15  6
10  9   8   7
N = 5 Output: [[1,2,3,4,5],[16,17,18,19,6],[15,24,25,20,7],[14,23,22,21,8],[13,12,11,10,9]]

1   2   3   4   5    
16  17  18  19  6    
15  24  25  20  7    
14  23  22  21  8    
13  12  11  10  9

 

 

 

Solution

public class TheClockwiseSpiral {

    public static int[][] createSpiral(int N) {
        int[][] list = new int[N][N];
		int cnt = 1;
    		int rot = 1;
        	int a=0 ,b=-1;

		
    		while(N>0) {
    			for(int i=0; i<N; i++){
    				b+=rot;
    				list[a][b] = cnt;
    				cnt++;
    			}
    			N--;
  
    			for(int i=0; i<N; i++){
    				a+=rot;
    				list[a][b] = cnt;
    				cnt++;
    			}
    			rot*=-1;
    		}
        
        return list;
    }
}

 

profile

SECTION

@SectionR0

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

검색 태그