본문 바로가기
공부/과제.

JAVA 문제풀이 10 마방진

by 햄이; 2021. 4. 26.

 

 

 

Q. 5 * 5 마방진

package Day8;

/*
 * Q 17. 5 * 5 마방진
 */
public class Question1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int arr[][] = new int[5][5];

		int r = 0;
		int c = 2;


		for(int i=1; i<=25; i++){

			if(i%5!=0){ // i가 5의 배수가 아니면 
				arr[r][c] = i;//i값 넣어줌
				r--; // 행 1감소
				c++; // 열 1증가
			}else{ //i가 5의 배수면 : 마방진에서는 5의 배수일 때 마다 행만 아래로 내려감
				arr[r][c] = i;
				r++;// 행 1증가

			}
			//배열의 행열 크기 벗어날 시 재초기화해줌
			if(r < 0) { 
				r = 4;
			}
			if(c>4) {
				c = 0;
			}
}

		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j < arr.length; j++) {
				System.out.printf("%d\t", arr[i][j]);
			}
			System.out.println();
		}

	}

}

위 실행 결과

 

나는 5의 배수 규칙으로 풀었으나,

오늘 선생님은 다른 방식으로도 풀어주셨다.

 

아마 그 방식이

개정 전 정보처리기사 알고리즘

문제에 있던 마방진 문제 방식 같은데🤔

이번 주말에 그 방식으로 풀고 같이 업로드해야겠다!

댓글