본문 바로가기

C언어/알고리즘

달팽이 배열

[달팽이 배열]

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;
}


출력




 


'C언어 > 알고리즘' 카테고리의 다른 글

Hex 뷰어  (0) 2010.11.18