정올 달팽이 문제

정보올림피아드 2016. 1. 26. 14:44 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

#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");

}

}