문제 설명
정수 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
으로 설정이 되어 있다.
다른 사람 코드와 같이 반복문의 조건 범위를 잘 정한다면 굳이 이중반복문을 돌지 않아도 해결이 가능했다.