[달팽이 배열]
N*N 정방행렬에
달팽이 집과 같은 순서로 데이터를 저장한다.
달팽이 배열은 배열의 크기나 시계 방향 또는 반시계 방향 어디든지 상관 없으나, 이 문제에서는 외부에서 중심까지 시계 방향으로 회전시키는 경우를 다룬다.
※ 4X4 달팽이 배열을 분석하시오.
※ 5X5 달팽이 배열을 분석하시오.
1. 4X4 정방행렬에 달팽이 집과 같은 순서로 숫자 1부터 차례대로 기억시킨 후, 그 값을 출력하시오.
2. 5X5 정방행렬에 달팽이 집과 같은 순서로 숫자 1부터 차례대로 기억시킨 후, 그 값을 출력하시오.
#include <stdio.h>
int max;
int main()
{
int dal[50][50];
int i;
int x=0;
int y=-1;
int t=1;
int p;
int cnt=1;
int jmax;
printf("배열 숫자를 입력하세요 nXn: ");
scanf("%d",&p);
max=p;
jmax=max;
while(0<=jmax)
{
for(i=0;i<jmax;i++) //행 표현
{
y=y+t;
dal[x][y]=cnt;
cnt++;
}
jmax--;
for(i=0;i<jmax;i++)// 열 표현
{
x=x+t;
dal[x][y]=cnt;
cnt++;
}
t=t*-1;
}
for(x=0;x<max;x++)// 출력 부분
{
for(y=0;y<max;y++)
{
printf("%4d",dal[x][y]);
}
printf("\n");
}
return 0;
}
출력