특별한 이차원 배열2 (JS)

·2024년 2월 16일
0

프로그래머스

목록 보기
1/18
post-thumbnail

문제 설명

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 | 하나라도 불만족 false

const isBelowThreshold = (currentValue) => currentValue < 40;
const array1 = [1, 30, 39, 29, 10, 13];
console.log(array1.every(isBelowThreshold));
// Expected output: true

some 함수와 every 함수의 차이?

  1. every 함수는 배열 내 모든 원소가 조건을 만족하는가?
  2. some 함수는 배열 내 단 하나의 원소가 조건을 만족하는가?
// some 함수 예제
let arr = [1, 3, 5, 7, 100];
function someFunction(value){
    return value % 2 === 0;
}
let result = arr.some(someFunction);
console.log(arr); // true

새롭게 알게된 것들

보통 배열 내 조건에 맞는 원소를 구할 때, someevery 함수를 사용하면 수월하게 문제를 해결할 수 있다!

profile
- 배움에는 끝이 없다.

0개의 댓글