알고리즘/[코드업] 기초5-3. 2차원 배열

[JAVA] CodeUp 1468 : [기초-배열연습] 2차원 배열 지그재그 채우기 2-1

Art Rudy
728x90
반응형

https://codeup.kr/problem.php?id=1468 

 

[기초-배열연습] 2차원 배열 지그재그 채우기 2-1

다음과 같은 n*n 배열 구조를 출력해보자. 입력이 3인 경우 다음과 같이 출력한다. 1 2 3 6 5 4 7 8 9 입력이 5인 경우는 다음과 같이 출력한다. 1 2 3 4 5 10 9 8 7 6 11 12 13 14 15 20 19 18 17 16 21 22 23 24 25 입력

codeup.kr

문제 분류 : 기초5-3. 2차원 배열

문제 설명

다음과 같은 n*n 배열 구조를 출력해보자.

입력이 3인 경우 다음과 같이 출력한다.
1 2 3
6 5 4
7 8 9

입력이 5인 경우는 다음과 같이 출력한다.
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25

입력이 n인 경우의 2차원 배열을 출력해보자.

입력

첫 번째 줄에 배열의 크기 n이 입력된다.
[입력값의 정의역]
1<=  n <= 100

출력

n*n 크기의 배열을 설명과 같이 채워 출력한다.

입력 예시

4

출력 예시

1 2 3 4

8 7 6 5

9 10 11 12

16 15 14 13

도움말

 

 

내 답안

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {

  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

    int n = Integer.parseInt(br.readLine());

    int [][] arr = new int [n][n];

    for(int i = 0; i < n; i++) {
      if(i%2==0) {
        for(int j = 0; j < n; j++) {
          arr[i][j] = n*i+(j+1);
          bw.write(String.valueOf(arr[i][j]+" "));
        }
      }else if(i%2!=0) {
        for(int j = 0; j < n; j++) {
          arr[i][j] = n*(i+1)-j;
          bw.write(String.valueOf(arr[i][j]+" "));
        }
      }
      bw.write("\n");
    }

    bw.flush();
    bw.close();
    br.close();
  }
}
728x90
반응형