본문 바로가기

JAVA/알고리즘 예제

[JAVA] 대각선 채우기(diagonal)

5*5 대각선 채우기


9회전까지


I = 2회전

(1,2) (2,1)


I = 3회전

(1,3) (2,2) (3,1)


I = 4회전

(1, 4) (2, 3) (3, 2) (4, 1)


package jungbo;


public class T14Diagonal {

public static void main(String[] args) {

int array[][] = new int[5][5];

int cnt;

int i = 1;

int row, col;

for(cnt=0;cnt<=8;cnt++){

for(row=0;row<=4;row++){

col = cnt - row;

if(col>=0 && col<=4){

array[row][col]=i++;

}

}

}

for(row=0;row<=4;row++){

for(col=0;col<=4;col++){

System.out.printf("%3d", array[row][col]);

}

System.out.println();

}

}//main end

}//class end



차수를 입력받아 출력하는 로직을 만들어보기



package jungbo;


import java.util.InputMismatchException;

import java.util.Scanner;


public class T14Diagonal {

public static void main(String[] args) {

Scanner scan = null;

int deg;

while(true){

                        scan = new Scanner(System.in);

try{

System.out.print("대각선의 차수를 입력하세요. : ");

deg = scan.nextInt();

break;

}catch(InputMismatchException ex){

System.err.println(ex);

}

}

scan.close();

int array[][] = new int[deg][deg];

int cnt;

int i = 1;

int row, col;

for(cnt=0;cnt<=(deg*2)-1;cnt++){

for(row=0;row<=deg-1;row++){

col = cnt - row;

if(col>=0 && col<=deg-1){

array[row][col]=i++;

}

}

}

for(row=0;row<=deg-1;row++){

for(col=0;col<=deg-1;col++){

System.out.printf("%3d", array[row][col]);

}

System.out.println();

}

}//main end

}//class end