Etc./개인공부

[프로그래머스 / Java] [level 0] 특별한 이차원 배열 1

baek-dev 2025. 1. 7. 08:54

문제 설명

정수 n이 매개변수로 주어질 때, 다음과 같은 n × n 크기의 이차원 배열 arr를 return 하는 solution 함수를 작성해 주세요.

  • arr[i][j] (0 ≤ i, j < n)의 값은 i = j라면 1, 아니라면 0입니다.

제한사항
  • 1 ≤ n ≤ 100

입출력 예

nresult

3 [[1, 0, 0], [0, 1, 0], [0, 0, 1]]
6 [[1, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0], [0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 1]]
1 [[1]]

제출 답안 :

class Solution {
    public int[][] solution(int n) {
        int[][] answer = new int[n][n];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                if (i == j) {
                    answer[i][j] = 1;
                    continue;
                }
                answer[i][j] = 0;
            }
        }
        return answer;
    }
}

i 와 j 가 같을 때 1을 넣고, 다를때 0을 넣게 했다.

 

class Solution {
    public int[][] solution(int n) {
        int[][] answer = new int[n][n];
        for (int i = 0; i < n; i++) {
            answer[i][i] = 1;
        }
        return answer;
    }
}

하지만 int형은 기본값이 0 이기 때문에, 1만 넣어주면 되는 문제였다.

2중 반복문을 사용하여 [ i ][ j ]에서 i == j 를 찾는 대신, [ i ][ i ]를 사용하여 좀 더 간결하게 해줄 수 있었다.