-
[Programmers] JavaScript 알고리즘 | Lv.0 특별한 이차원 배열 2► JS Algorithm/Programmers 2024. 1. 9. 20:04반응형
🔒 문제 설명
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 of mine
for문
const solution = (arr, a = 0) => { for (let i = 0; i < arr.length; i++) { for (let j = 0; j < arr.length; j++) { if (arr[i][j] === arr[j][i]) a++; } } return console.log(a === arr.length ** 2 ? 1 : 0); }; solution([ [5, 192, 33], [192, 72, 95], [33, 95, 999], ]); // expected output: 1 solution([ [19, 498, 258, 587], [63, 93, 7, 754], [258, 7, 1000, 723], [587, 754, 723, 81], ]); // expected output: 0
🔐 solution of others
Array.every()
const solution = (arr) => console.log( arr.every((_, i) => arr.every((_, j) => arr[i][j] === arr[j][i])) ? 1 : 0 ); solution([ [5, 192, 33], [192, 72, 95], [33, 95, 999], ]); // expected output: 1 solution([ [19, 498, 258, 587], [63, 93, 7, 754], [258, 7, 1000, 723], [587, 754, 723, 81], ]); // expected output: 0
🔐 solution of others
Array.map()
Array.flat()
Array.join()
const solution = (arr) => console.log( +( arr .map((_, i) => arr.map((_, j) => arr[j][i])) .flat() .join("") === arr.flat().join("") ) ); solution([ [5, 192, 33], [192, 72, 95], [33, 95, 999], ]); // expected output: 1 solution([ [19, 498, 258, 587], [63, 93, 7, 754], [258, 7, 1000, 723], [587, 754, 723, 81], ]); // expected output: 0
반응형'► JS Algorithm > Programmers' 카테고리의 다른 글
[Programmers] JavaScript 알고리즘 | Lv.0 l로 만들기 (0) 2024.01.09 [Programmers] JavaScript 알고리즘 | Lv.0 문자열 정렬하기 (1) (1) 2024.01.09 [Programmers] JavaScript 알고리즘 | Lv.0 ad 제거하기 (0) 2024.01.09 [Programmers] JavaScript 알고리즘 | Lv.0 콜라츠 수열 만들기 (0) 2024.01.08 [Programmers] JavaScript 알고리즘 | Lv.0 A 강조하기 (0) 2024.01.08