먼저 소스를 보여드리기에 앞서, 달팽이 알고리즘에 대해 설명해드릴게요.
1 2 3 1 2 3 4 1 2 3 4 5
8 9 4 12 13 14 5 16 17 18 19 6
7 6 5 11 16 15 6 15 24 25 20 7
10 9 8 7 14 23 22 21 8
13 12 11 10 9
x3 x4 x5
이해가 가시나요~?
어떤 특정한 n을 입력받고, 빙글빙글 돌아 숫자를 넣어주면 됩니다!
애니고 컴퓨터게임제작과에서 출제되었던 문제로 기억합니다.
무려 중학교 때 짰었던 고대 자료네요~ ^^
#include <stdio.h>
int main()
{
int ary[50][50];
int n, z, i, j, x=0, y=-1, turn=1;
int num=1;
printf("숫자입력 : ");
scanf("%d",&n);
z=n;
while(z!=0)
{
for(i=0; i<z; i++)
{
y+=turn;
ary[x][y]=num;
num++;
}
z--;
for(i=0; i<z; i++)
{
x+=turn;
ary[x][y]=num;
num++;
}
turn*=-1;
}
for(i=0; i<n; i++)
{
for(j=0; j<n;j++)
{
printf("%5d",ary[i][j]);
}
printf("\n");
}
return 0;
}
'진주의 배설물 > 알고리즘 소스' 카테고리의 다른 글
[알고리즘] 2월 첫째주 알고리즘 - 3n+1 (0) | 2012.02.03 |
---|---|
[C언어] 배열과 함수만을 이용한 Queue (0) | 2012.02.03 |