Developer. Designer

프로그래머스 기초트레이닝 Day25-2

특별한 이차원 배열 2😀

n × n 크기의 이차원 배열 arr이 매개변수로 주어질 때, arr이 다음을 만족하면 1을 아니라면 0을 return 하는 solution 함수를 작성해 주세요.
0 ≤ i, j < n인 정수 i, j에 대하여 arr[i][j] = arr[j][i]

※ 제한 사항
1 ≤ arr의 길이 = arr의 원소의 길이 ≤ 100
1 ≤ arr의 원소의 원소 ≤ 1,000
모든 arr의 원소의 길이는 같습니다.

입출력

arr result
[[5, 192, 33], [192, 72, 95], [33, 95, 999]] 1
[[19, 498, 258, 587], [63, 93, 7, 754], [258, 7, 1000, 723], [587, 754, 723, 81]] 0


function solution(arr) {
  var n = arr.length;

  // 주어진 조건에 따라 대칭 여부 확인
  for (var i = 0; i < n; i++) {
    for (var j = i + 1; j < n; j++) {
      if (arr[i][j] !== arr[j][i]) {
        return 0; // 대칭이 아니면 0 반환
      }
    }
  }

  return 1; // 대칭이면 1 반환
}

var n = arr.length: 배열의 크기를 구합니다.

중첩된 for 루프를 사용하여 배열의 모든 원소에 대해 대칭 여부를 확인합니다.

바깥쪽 루프(i): 행 인덱스를 나타냅니다.
안쪽 루프(j): 열 인덱스를 나타냅니다. i+1부터 시작하여 대각선 아래쪽의 원소들만 확인합니다.
조건문 if (arr[i][j] !== arr[j][i]): 현재 원소 arr[i][j]와 대칭 위치의 원소 arr[j][i]를 비교합니다.
만약 두 값이 다르다면, 대칭 행렬이 아니므로 함수는 0을 반환하고 종료됩니다.

모든 원소에 대해 대칭 여부를 확인하고, 만약 모든 조건을 통과했다면 함수는 1을 반환합니다. 이는 대칭 행렬임을 나타냅니다.

이 함수를 호출하면, 주어진 배열 arr이 대칭 행렬이면 1을 반환하고, 그렇지 않으면 0을 반환합니다.