특별한 이차원 배열 2

n × n 크기의 이차원 배열 arr이 매개변수로 주어질 때, arr이 다음을 만족하면 1을 아니라면 0을 return 하는 solution 함수를 작성해 주세요.

  • 0 ≤ i, j < n인 정수 i, j에 대하여 arr[i][j] = arr[j][i]
특별한 이차원 배열 2Lv.0

181831

https://school.programmers.co.kr/learn/courses/30/lessons/181831?language=javascript

해설

주어진 배열 arr가 대칭인지 아닌지를 확인하는 기능을 합니다.

  • Name
    반복문
    Type
    Description

    0부터 시작하여 배열 arr의 행을 순회합니다. i가 배열 arr의 길이보다 작은 동안 루프는 계속됩니다.

    바깥쪽 루프 안에 또 다른 루프가 있으며, 이 루프는 i + 1에서 시작합니다. 이 루프는 각 행에 대해 현재 행 인덱스 다음에 있는 열 인덱스부터 순회합니다. j가 배열 arr의 길이보다 작은 동안 루프는 계속됩니다.

  • Name
    대칭성 검사
    Type
    Description

    안쪽 루프 안에는 [i][j] 위치의 요소가 [j][i] 위치의 요소와 같지 않은 경우를 확인하는 if문이 있습니다. 이 조건이 어떤 요소 쌍에 대해서라도 참이라면, 함수는 즉시 0을 반환하여 배열이 대칭이 아님을 나타냅니다.

    양쪽 루프를 모두 완료하고 어떤 비대칭 요소 쌍도 찾지 못하면, 1을 반환하여 배열이 대칭임을 나타냅니다.

특별한 이차원 배열 2

function solution(arr) {
    for(let i = 0; i < arr.length; i++){
        for(let j = i + 1; j < arr.length; j++){
            if(arr[i][j] !== arr[j][i]){
                return 0;
            }
        }
    }
    return 1;
}