정올 달팽이 문제
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int data[100][100] = { 0 } ;
int n;
int x = 1;
int i = 0, j = 0;
int i1, i2;
int direction = 1;
cin >> n;
// 입력
for( i1 = 0 ; i1 < n ; i1++ )
{
for( i2 = 0 ; i2 < n ; i2++ )
{
data[i][j] = x++;
if( direction == 1 )
{
j++;
if( j == n || data[i][j] != 0 )
{
direction += 1;
j--;
}
}
if( direction == 2 )
{
i++;
if( i == n || data[i][j] != 0 )
{
direction += 1;
i--;
}
}
if( direction == 3 )
{
j--;
if( j < 0 || data[i][j] != 0 )
{
direction += 1;
j++;
}
}
if( direction == 4 )
{
i--;
if( data[i][j] != 0 )
{
direction = 1;
i++;
j++;
}
}
}
}
// 출력
for( i = 0 ; i < n ; i++ )
{
for( j = 0 ; j < n ; j++ )
{
printf("%5d ", data[i][j]);
}
printf("\n");
}
}