n × n 크기의 이차원 배열 arr
이 매개변수로 주어질 때, arr
이 다음을 만족하면 1을 아니라면 0을 return 하는 solution 함수를 작성해 주세요.
arr[i][j]
= arr[j][i]
arr
의 길이 = arr
의 원소의 길이 ≤ 100arr
의 원소의 원소 ≤ 1,000arr
의 원소의 길이는 같습니다.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
arr
에서 arr[0][1]
= 498 ≠ 63 = arr[1][0]
이므로 조건을 만족하지 않습니다. 따라서 0을 return 합니다.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(''));