반응형
문제 설명
- 문제: https://leetcode.com/problems/check-if-matrix-is-x-matrix/description/
- 설명: 주어진 정사각형 행렬이 X-매트릭스인지 확인합니다. X-매트릭스는 주 대각선과 부 대각선을 제외한 모든 요소가 0인 행렬입니다.
접근 방식
- 아이디어: 각 요소가 X-매트릭스의 조건을 만족하는지 확인하기 위해 주 대각선과 부 대각선을 검사합니다.
- 알고리즘: 주 대각선의 요소와 부 대각선의 요소를 제외한 모든 요소가 0인지 검사하여 X-매트릭스 여부를 판단합니다.
코드
class Solution {
public boolean checkXMatrix(int[][] grid) {
int n = grid.length;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i == j || i + j == n - 1) { // 주 대각선 또는 부 대각선에 해당하는 요소인 경우
if (grid[i][j] == 0) return false; // 0이면 X-매트릭스가 아님
} else { // 주 대각선 또는 부 대각선이 아닌 요소인 경우
if (grid[i][j] != 0) return false; // 0이 아니면 X-매트릭스가 아님
}
}
}
return true; // 모든 조건을 만족하면 X-매트릭스
}
}
결론
- 시간 복잡도: 이 알고리즘은 행렬의 모든 요소를 한 번씩만 확인하므로 O(n^2)입니다.
- 공간 복잡도: 추가적인 공간을 사용하지 않고 입력 행렬만을 사용하므로 O(1)입니다.
반응형
'leetcode 문제 풀이' 카테고리의 다른 글
LeetCode 1823. Find the Winner of the Circular Game 자바 문제 풀이 (0) | 2024.07.09 |
---|---|
LeetCode 2181. Merge Nodes in Linked List 자바 문제 풀이 (0) | 2024.07.07 |
LeetCode 1509. Minimum Difference Between Largest and Smallest Value in Three Moves 자바 문제 풀이 (0) | 2024.07.05 |
LeetCode 350. Intersection of Two Arrays II 자바 문제 풀이 (0) | 2024.07.02 |
LeetCode 1550. Three Consecutive Odds 자바 문제 풀이 (0) | 2024.07.01 |