특이한 이차원 배열2

도비김·2024년 2월 27일
0

Programmers | lv.0 기초 

목록 보기
122/125
문제 설명

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

입출력 예 설명

입출력 예 #1

  • 예제 1번에서 문제의 조건이 잘 보이도록 표를 만들면 다음과 같습니다.

    i j arr[i][j] arr[j][i]
    0 0 5 5
    0 1 192 192
    0 2 33 33
    1 0 192 192
    1 1 72 72
    1 2 95 95
    2 0 33 33
    2 1 95 95
    2 2 999 999

    조건을 만족하므로 1을 return 합니다.

입출력 예 #2

  • 예제 2번의 arr에서 arr[0][1] = 498 ≠ 63 = arr[1][0]이므로 조건을 만족하지 않습니다. 따라서 0을 return 합니다.

solution

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

every()라는 마법

다른풀이

function solution(arr) {
    return arr.every((r, i) => r.every((_, j) => arr[i][j] === arr[j][i])) ? 1 : 0;
}

const solution = arr => +(arr.map((a1, i1) => a1.map((a2,i2) => arr[i2][i1])).flat().join('') == arr.flat().join(''));
profile
To Infinity, and Beyond!

0개의 댓글