코린이의 소소한 공부노트

[LeetCode/Easy] 1128. Number of Equivalent Domino Pairs 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 1128. Number of Equivalent Domino Pairs

무지맘 2023. 4. 6. 01:49

1. Input

1) int[][] dominoes

- 도미노에는 위아래에 각각 숫자가 1개씩 적혀있다.

 

2. Output

1) dominoes의 도미노들 중 같은 도미노 쌍의 개수를 반환

- 뒤집었을 때 숫자가 같다면 같은 도미노이다.

 

3. Constraint

1) 1 <= dominoes.length <= 4 * 10^4

2) dominoes[i].length == 2

3) 1 <= dominoes[i][j] <= 9

 

4. Example

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

설명:

- 0번째와 1번째 / 0번째와 3번째 / 1번째와 3번째가 같은 도미노이므로 3을 반환한다.

 

5. Code

1) 첫 코드(2023/04/06)

HashMap<String,Integer> m = new HashMap<>();
for(int i=0 ; i<dominoes.length ; i++){
    String s = Math.min(dominoes[i][0],dominoes[i][1])+","+Math.max(dominoes[i][0],dominoes[i][1]);
    m.put(s, m.getOrDefault(s,0)+1);
}
int answer = 0;
Iterator it = m.values().iterator();
while(it.hasNext()){
    int n = (int)it.next();
    if(n>=2)
        answer += n*(n-1)/2;
}
return answer;

- 약간 느리지만 메모리는 덜 잡아먹는 코드