본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1478 : 2차원 배열 빗금 채우기 3-3

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1478 2차원 배열 빗금 채우기 3-3 (자바, JAVA)입니다.

Intro

Question

문제 설명

입력

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

출력

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

예시

  • 입력 : 2 3
  • 출력 :
    1 3 5
    2 4 6

Solution (풀이)

  • 풀이 : 메모리 14336, 시간 100
public class Answer1 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        int n = Integer.parseInt(st.nextToken());
        int m = Integer.parseInt(st.nextToken());
        int[][] arr = new int[n][m];    // 2차원 배열 선언

        // 초기 index에 넗을 값 1로 선언
        int number = 1;

        for (int i=0; i<=n+m-2; i++) {
            //열 반복
            for (int j=0; j<n; j++) {
                //행 반복
                for (int k=m-1; k>=0; k--) {
                    //행과 열의 합이 j와 같다면 count 넣고 증가시키기
                    if (j+(m-1-k) == i) {
                        arr[j][k] = number++;
                        break;
                    }
                }
            }
        }

        // for each문 활용
        for (int[] i : arr) {
            for (int j : i) {
                sb.append(j).append(" ");
            }
            sb.append("\n");
        }
        System.out.println(sb);
        br.close();
    }

}

Ranking(순위)

반응형