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.풀이
- 이중 for문을 돌면서 dominoe 들을 모두 비교한다.
- 같은 도미노라면 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.결과