[Programmers] #181831 - 특별한 이차원 배열 2 [Java][C++][Python]
[Programmers] #181831 - 특별한 이차원 배열 2 [Java][C++][Python]
1. 아이디어
$N \times N$ 크기의 이차원 배열 arr에 대해 좌상우하 대각선을 기준으로 대칭이 되는지 판단하는 문제다. 행 인덱스와 열 인덱스를 활용해 대칭 여부만 판단하면 된다.
2. 복잡도
| 접근 | 시간 | 공간 |
|---|---|---|
| 풀이 | $O(N^2)$ | $O(1)$ |
($N$ = arr의 길이)
3. 코드
풀이 [Java][C++][Python]
1
2
3
4
5
6
7
8
9
10
11
class Solution {
public int solution(int[][] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i][j] != arr[j][i]) return 0;
}
}
return 1;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
#include <bits/stdc++.h>
using namespace std;
int solution(vector<vector<int>> arr) {
for (int i = 0; i < arr.size() - 1; i++) {
for (int j = i + 1; j < arr.size(); j++) {
if (arr[i][j] != arr[j][i]) return 0;
}
}
return 1;
}
1
2
3
4
5
6
7
8
def solution(arr):
n = len(arr)
for i in range(n - 1):
for j in range(i + 1, n):
if arr[i][j] != arr[j][i]:
return 0
return 1
This post is licensed under CC BY 4.0 by the author.