728x90
300x250
직사각형,정사각형 모두 수용되는 형태의 달팽이 배열이다.
왜 늘 기본적인 배열,for문은 오랜만에하면 어려울까..
package algorithm;
public class 달팽이배열 {
public static void main(String[] args) {
int R = 5, C = 7;
int[][] map = new int[R][C];
int num = 1;
int x = 0;
int y = -1;
int flag = 1;
int width = C;
int height = R-1;
while(num<=(R*C)) {
//가로 이동
for (int i = 0; i < width && num<=(R*C); i++) {
//y+=flag;
map[x][++y]=num++;
}
width--;
//세로 이동
for (int i = 0; i < height && num<=(R*C); i++) {
//x+=flag;
map[++x][y]=num++;
}
height--;
//가로 이동
for (int i = 0; i < width && num<=(R*C); i++) {
//y+=flag;
map[x][--y]=num++;
}
width--;
//세로 이동
for (int i = 0; i < height && num<=(R*C); i++) {
//x+=flag;
map[--x][y]=num++;
}
height--;
//flag*=(-1);
}
//프린트
for (int i = 0; i < R; i++) {
for (int j = 0; j < C; j++) {
System.out.print(map[i][j] + "\t");
}
System.out.println();
}
//fun();
}
}
출력결과
1 2 3 4 5 6 7
20 21 22 23 24 25 8
19 32 33 34 35 26 9
18 31 30 29 28 27 10
17 16 15 14 13 12 11
728x90
'알고리즘 > 그 외' 카테고리의 다른 글
프로그래머스[Level2] - 124나라의 숫자 (0) | 2020.08.28 |
---|---|
프로그래머스[Level2] - 스킬 트리 [Summer/Winter Coding(~2018)] (0) | 2020.08.28 |
SWEA - 1229. [S/W 문제해결 기본] 8일차 - 암호문2 (0) | 2020.05.15 |
SWEA - 8741. 두문자어 (0) | 2020.05.10 |
SWEA - 7193. 승현이의 수학공부 (0) | 2020.03.29 |