2 2 2 20
    2 2 15 2
    2 10 2 2
    5 2 2 2

    위 에 표와 같이 정방 행렬에서 대각선으로 5의 배수를 넣으려고 하는 문제입니다.

     

    예전에는 이런 것들을 생각해 보지않았는데 이번에 보고 있는 책에 이런 예제 가 있더라구요.

     

    책에 예제는 4, 4 정방행렬에서만 사용할 수 있게 살짝 하드코딩 되어있어서.

     

    다른 정방 행렬에서도 사용할 수 있게 다시 코딩해 보았습니다.

     

    제가 찾은 규칙은 이렇습니다.

     

    1. 배열의 특정 지점에 5의 배수를 입력

    2. 배열 index의 합이 배열의 최대 길이 -1 일때 5의 배수를 입력

    3. 입력되는 값은 (length - index X) * 5

     - index X는 배열의 index를 Arr[X] [Y] 이렇게 본 것입니다.

     

    코드

    public static void main(String[] args) {
    		/*
    		 * 특정 교차 지점에 5의 배수를 입력
    		 * 배열 index의 합이 최대 길이 -1 일 때 5의 배수를 입력
    		 * 입력되는 값은 (length - index X) * 5
    		 * 
    		 */
    		int [][] arr = new int[10][10]; // 배열 설정
    		
    		// 배열 저장
    		for(int i=0; i<arr.length; i++) {
    			for(int j=0; j<arr[i].length; j++) {
    				if(i+j == arr.length-1) {
    					arr[i][j] = (arr.length - i)*5;
    				}else {
    					arr[i][j] = 2;
    				}
    			}
    		}
    		
    		//배열에 저장된 값 출력
    		System.out.println("배열 결과");
    		for(int i=0; i<arr.length; i++) {
    			for(int j=0; j<arr[i].length; j++) {
    				System.out.print(arr[i][j] + "\t");
    			}
    			System.out.println();
    		}
    	}

     

     

    10 * 10 정방 행렬일 때 결과

    Posted by Zomder