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
'JAVA > 알고리즘 예제' 카테고리의 다른 글
[JAVA] 진법 변환(Radix Transformation) (1) | 2016.09.06 |
---|---|
[JAVA] 소인수 분해(Integer Factorization) (1) | 2016.09.06 |
[JAVA] 합병(Merge) (1) | 2016.09.05 |
[JAVA] 90도 회전 (Rotate) (1) | 2016.09.02 |
[JAVA] 이분 검색(Binary Search) (1) | 2016.09.02 |