[LeetCode] Number of Equivalent Domino Pairs

준규·2023년 3월 26일
0

1.문제


Given a list of dominoes, dominoes[i] = [a, b] is equivalent to dominoes[j] = [c, d] if and only if either (a == c and b == d), or (a == d and b == c) - that is, one domino can be rotated to be equal to another domino.

Return the number of pairs (i, j) for which 0 <= i < j < dominoes.length, and dominoes[i] is equivalent to dominoes[j].


dominoe 배열 값이 들어있는 2차원 배열 dominoes가 주어질 때 서로 다른 dominoe 의 각 원소값이 같다면 같은 도미노로 취급할 때 dominoes에서 같은 도미노의 개수를 리턴하는 문제이다.


Example 1

Input: dominoes = [[1,2],[2,1],[3,4],[5,6]]
Output: 1

Example 2

Input: dominoes = [[1,2],[1,2],[1,1],[1,2],[2,2]]
Output: 3

Constraints:

  • 1 <= dominoes.length <= 4 * 10^4
  • dominoes[i].length == 2
  • 1 <= dominoes[i][j] <= 9

2.풀이

  1. 이중 for문을 돌면서 dominoe 들을 모두 비교한다.
  2. 같은 도미노라면 count + 1

/**
 * @param {number[][]} dominoes
 * @return {number}
 */
const numEquivDominoPairs = function (dominoes) {
  let count = 0;
  for (let i = 0; i < dominoes.length - 1; i++) {
    for (let j = i + 1; j < dominoes.length; j++) {
      // for 문을 돌면서 dominoes 가 같은지 체크한다.
      if (
        (dominoes[i][0] === dominoes[j][0] &&
          dominoes[i][1] === dominoes[j][1]) ||
        (dominoes[i][0] === dominoes[j][1] && dominoes[i][1] === dominoes[j][0])
      ) {
        count++;
      }
    }
  }

  return count;
};

3.결과

profile
안녕하세요 :)

0개의 댓글