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 |
---|