[정올] 2046_숫자사각형4 (JAVA)

업데이트:


문제

정사각형의 한 변의 길이 n과 종류 m을 입력받은 후 다음과 같은 정사각형 형태로 출력하는 프로그램을 작성하시오.


처리조건

종류 2번의 경우 숫자의 진행 순서는 처음에 왼쪽에서 오른쪽으로 너비 n만큼 진행 한 후 방향을 바꾸어서 이를 반복한다.

조건예



입력형식

  • 정사각형 한 변의 길이 n(n의 범위는 100 이하의 정수)과 종류 m(m은 1부터 3사이의 정수)을 입력받는다.



출력형식

  • 위에서 언급한 3가지 종류를 입력에서 한 변의 길이 n과 종류 m에 맞춰서 출력한다. 숫자 사이는 공백으로 구분하여 출력한다.



입출력 예

예



코드

import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
 
        int n = sc.nextInt();
        int m = sc.nextInt();
 
        int[][] numArr = new int[n][n];
 
        int num = 1;
 
        if (m == 1) {
            for (int i = 0; i < n; i++) {
                for (int j = 0; j < n; j++) {
                    numArr[i][j] = num;
                }
                num++;
            }
        }
 
        if (m == 2) {
            for (int i = 0; i < n; i++) {
                num = 1;
                if (i % 2 == 0) {
                    for (int j = 0; j < n; j++) {
                        numArr[i][j] = num++;
                    }
                } else {
                    for(int j = n-1; j >= 0; j--) {
                        numArr[i][j] = num++;
                    }
                }
            }
 
        }
         
         
        if(m == 3) {
            num = 1;
            for(int i = 0;  i < n; i++) {
                for(int j = 0; j < n; j++) {
                    if(i == 0) numArr[i][j] = num++;
                    else numArr[i][j] = numArr[0][j] * (i+1);
                }
            }
        }
         
        for(int i = 0; i < n; i++) {
            for(int j = 0; j < n; j++) {
                System.out.print(numArr[i][j] + " ");
            }
            System.out.println();
        }
 
    }
}

댓글남기기