본문 바로가기
Algorithm

2차원배열 달팽이모양

by 씨니 2022. 6. 18.
728x90

▶ 문제

 

▶ 풀이방법

import java.util.*;

public class snail_array {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		
		int[][] arr = new int[N][N]; //결과값 저장소.
		
		int num = 1; //배열에 저장될 값
		int row = 0; //행
		int column = -1; //열
		int control = 1; // 행과 열을 도와주는 수
		int count = N; //한줄마다 입력될 값의 수
		
		for(int i = 0; i < N; i--) {//회전수
			for(int j = 0; j < count; j++) {//가로로 저장(오른쪽으로, 왼쪽으로)
				column += control;
				arr[row][column] = num;
				num++;
			}
			count--;
			for(int k = 0; k < count; k++) {//세로로 저장(아래로, 위로)
				row += control; 
				arr[row][column] = num;
				num++;
			}
			control *= -1; //값을 +해줄지 -해줄지 결정
		}
		
		for(int i = 0; i < N; i++ ) { //결과값 출력
			for(int j = 0; j < N; j++) {
				System.out.print(arr[i][j] + "  ");
				
			}
			System.out.println();
		}
	}
}

728x90

'Algorithm' 카테고리의 다른 글

알고리즘 - Dynamic Programming(동적 계획법)  (0) 2022.03.19