2013년 8월 13일 화요일

[ORACLEJAVA커뮤니티]달팽이 배열을 자바로 구현했습니다.

시계방향(또는 시계반대방향)으로 채워진 배열을 달팽이 배열이라 한다.
시계방향으로 순환적인 모습으로 반복된다.  

오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(신입사원채용무료교육, 오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷)  


//달팽이 배열
class Dal {
int[][] a = new int[20][20];
int h=0, y=-1;      //행, 열
    int suja=0;            //채워질 숫자

void  fill(int value, int banghyang) {
if (value ==0) return;
for(int i=0; i<2*value-1; i++) {
if (i < value) y += banghyang;
else h += banghyang;
a[h][y] = ++suja;
}
fill(value-1, -banghyang);
}

public static void main(String[] args) {
if (args.length<1) {
System.out.println("Usage : java Dal number ");
System.exit(1);
}
        int value = Integer.parseInt(args[0]);
Dal d = new Dal();
d.fill(value, 1);

for(int i=0; i<value; i++) {
for(int j=0;j<value; j++) {
if (d.a[i][j] < 10)  System.out.print("  ");
else System.out.print(" ");
System.out.print(d.a[i][j]);
}
}
}

댓글 없음:

댓글 쓰기