본문 바로가기
Problem Solving/SWEA

[SWEA] 1954. 달팽이 숫자

by 테리는당근을좋아해 2020. 2. 9.

문제

달팽이 행렬을 구하는 문제

 

풀이방법

달팽이 행렬의 패턴을 찾는다

행과 열이 증가할 때
행과 열이 감소할 때
다시 행과 열이 증가할 때

소스코드

package samsung;

import java.util.*;

public class s_1954 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int test = sc.nextInt();
		
		for(int t = 1; t <= test; t++) {
			int n = sc.nextInt();
			int[][] a = new int[n][n];
			int turn = 1;
			int x = 0, y = -1;
			int cnt = 1;
			
			while(true) {
				for(int i = 0; i < n; i++) {
					y = y + turn;
					a[x][y] = cnt;
					cnt++;
				}
				n--;
				for(int i = 0; i < n; i++) {
					x = x + turn;
					a[x][y] = cnt;
					cnt++;
				}
				turn *= -1;
				if(n == 0)
					break;
			}
			System.out.println("#" + t);
			
			for(int i = 0; i < a.length; i++) {
				for(int j = 0; j < a.length; j++) {
					System.out.print(a[i][j] + " ");
				}
				System.out.println();
			}
		}
	}
}

댓글