특별한 이차원 배열 1

nacSeo (낙서)·2024년 3월 26일
0

프로그래머스

목록 보기
134/169

문제 설명

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

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

제한사항

1 ≤ n ≤ 100

나의 코드

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

다른 사람 코드

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;
    }
}

반복문의 조건을 i<n으로 사용하여 해결

느낀 점

문제의 arr[i][j] (0 ≤ i, j < n)의 값은 i = j라면 1, 아니라면 0입니다. 부분을 잘 이해한다면 어렵지 않게 풀 수 있었다.
한 가지 보충할 지식은 나의 코드의 else answer[i][j] = 0; 부분을 안써도 해결이 된다는 것이다. int배열은 크기를 지정하면 자동으로 0으로 채워지고, String배열은 null로 채워진다. 따라서, 이 문제는 int배열이기 때문에 굳이 나머지 값들을 0으로 넣어주지 않아도 자동으로 0으로 설정이 되어 있다.
다른 사람 코드와 같이 반복문의 조건 범위를 잘 정한다면 굳이 이중반복문을 돌지 않아도 해결이 가능했다.

profile
백엔드 개발자 김창하입니다 🙇‍♂️

0개의 댓글