728x90
코드 힌트
- 2차원 배열 생성:
- 먼저, 주어진 크기 n에 맞는 n x n 크기의 2차원 배열을 생성합니다. 이 배열이 최종적으로 단위 행렬이 될 것입니다.
- 반복문을 이용한 주대각선 설정:
- 두 개의 중첩된 for 루프를 사용하여 배열의 모든 원소를 순회합니다.
- 바깥쪽 루프는 행을, 안쪽 루프는 열을 나타냅니다.
- 행과 열의 인덱스가 같은 경우, 즉 i == j일 때, 해당 위치는 주대각선에 해당합니다. 이 위치에 1을 설정합니다.
- 그 외의 위치는 배열을 생성할 때 기본적으로 0으로 초기화되므로 별도로 설정할 필요가 없습니다.
- 결과 반환:
- 모든 원소를 설정한 후, 생성된 단위 행렬을 반환합니다.
이 코드를 통해 주어진 크기 n에 맞는 단위 행렬을 생성할 수 있습니다. 각 원소가 0으로 초기화된 상태에서 주대각선의 원소만 1로 설정되므로 단위 행렬의 특성을 충족합니다.
코드 최적화
단위 행렬에서 1이 들어가는 위치는 항상 주대각선의 위치(i == j)입니다. 따라서 2중 for문을 사용할 필요 없이, 하나의 for문만으로 주대각선의 위치에 1을 설정할 수 있습니다. 이렇게 하면 코드가 더 간결해지고 효율적으로 됩니다.
정답은 더보기 클릭
더보기
class Solution {
public int[][] solution(int n) {
// n x n 크기의 2차원 배열을 생성
int[][] result = new int[n][n];
// 각 행과 열을 반복하면서
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
// 행과 열이 같으면 주대각선이므로 1을 대입
if (i == j) {
result[i][j] = 1;
}
}
}
// 생성된 단위 행렬을 반환
return result;
}
}
최적화 해보기
class Solution {
public int[][] solution(int n) {
int[][] result = new int[n][n];
for (int i = 0; i < n; i++) {
result[i][i] = 1;
}
return result;
}
}
728x90
'프로그래머스(Java) > Level 0' 카테고리의 다른 글
[프로그래머스] 분수의 덧셈 (0) | 2024.07.28 |
---|---|
[프로그래머스] 배열 만들기 3 (0) | 2024.07.28 |
[프로그래머스] 배열 만들기 2 (0) | 2024.07.26 |
[프로그래머스] 수열과 구간 쿼리 2 (0) | 2024.07.26 |
[프로그래머스] 수열과 구간 쿼리 3 (0) | 2024.07.26 |