n × n 크기의 이차원 배열 arr이 매개변수로 주어질 때, arr이 다음을 만족하면 1을 아니라면 0을 return 하는 solution 함수를 작성해 주세요.
0 ≤ i, j < n인 정수 i, j에 대하여 arr[i][j] = arr[j][i]
즉, 이차원 배열을 순회하면서 arr[i][j] = arr[j][i]
조건에 해당한다면 return 1
아니라면 return 0
1 ≤ arr의 길이 = arr의 원소의 길이 ≤ 100
1 ≤ arr의 원소의 원소 ≤ 1,000
모든 arr의 원소의 길이는 같습니다.
function solution(arr) {
for (let i = 0; i < arr.length; i++) { // 1차 배열 순회
for (let j = 0; j < arr.length; j++) { // 2차 배열 순회
if (arr[i][j] === arr[j][i]) {
return 1;
}
}
}
return 0;
}
// 1.
function solution(arr) {
return arr.every((r, i) => r.every((_, j) => arr[i][j] === arr[j][i])) ? 1 : 0;
}
every() 함수?
출처 : mdn배열에 사용가능한
every
메서드는 배열의 모든 요소가 제공된 함수로 구현된 테스트를 통과하는지 테스트한다.
반환값은 boolean값이다.
배열 내 모든 원소가 조건을 만족하면 true | 하나라도 불만족 falseconst isBelowThreshold = (currentValue) => currentValue < 40; const array1 = [1, 30, 39, 29, 10, 13]; console.log(array1.every(isBelowThreshold)); // Expected output: true
배열 내 모든 원소가 조건을 만족하는가?
배열 내 단 하나의 원소가 조건을 만족하는가?
// some 함수 예제
let arr = [1, 3, 5, 7, 100];
function someFunction(value){
return value % 2 === 0;
}
let result = arr.some(someFunction);
console.log(arr); // true
보통 배열 내 조건에 맞는 원소를 구할 때,
some
과every
함수를 사용하면 수월하게 문제를 해결할 수 있다!