처음엔 이렇게 풀었는데,
class Solution {
public int solution(int[][] arr) {
int k = 0;
for(int i=0; i<arr.length; i++) {
for( int j=arr.length-1; j>=0; j--) {
if(arr[i][j] == arr[j][i])
k++;
}
}
return k == arr.length*arr.length ? 1 : 0;
}
}
생각해보니, 굳이 변수를 할당해서 다 셀 필요 없이 그냥 조건에 한 번이라도 어긋나면 바로 반환해버리는 게 메모리와 시간을 효율적으로 쓰는 방법이라는 것을 깨달았다. (재사용하기 좋은 코드는 아니지만, 코테의 포인트는 복잡도니까.)
class Solution {
public int solution(int[][] arr) {
for(int i=0; i<arr.length; i++) {
for( int j=arr.length-1; j>=0; j--) {
if(arr[i][j] != arr[j][i])
return 0;
}
}
return 1;
}
}
'Study with me > 프로그래머스 L0 마스터하기' 카테고리의 다른 글
프로그래머스 - L0 l로 만들기 (0) | 2024.01.05 |
---|---|
프로그래머스 - L0 접미사배열 (1) | 2024.01.04 |
프로그래머스 - L0 0떼기 (1) | 2024.01.03 |
프로그래머스 - L0 인덱스바꾸기 (0) | 2024.01.02 |
프로그래머스 - L0 문자열정렬하기(1) // String → char → int (0) | 2024.01.02 |