Study with me/프로그래머스 L0 마스터하기

프로그래머스 - L0 특별한이차원배열2

외계나무 2024. 1. 4. 09:51

프로그래머스 - level 0 특별한 이차원 배열 2

처음엔 이렇게 풀었는데,

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;
    }
}