[LeetCode] Number of Good Pairs

📃 문제 설명

Number of Good Pairs

[문제 출처 : LeetCode]

👨‍💻 해결 방법

조합을 이용하여 풀었다.
짝을 찾기 위해서는 n개의 수 중에서 나를 제외한 n-1을 선택하는 경우의 수이기 때문에
nCn-1 을 구하면 된다.

조합을 직접 구할 필요는 없고 개수만 알면 되기 때문에,
딕셔너리를 이용해서 풀었다.

근데 풀고나서 다른 사람들의 코드를 기웃기웃 들여다봤는데,
나는 key에러를 방지하기 위해 배열의 원소가 딕셔너리에 있는지 없는지 직접 체크하면서 값을 저장해주었는데, 딕셔너리에 get()함수를 써서 풀면 더 편하다는 것을 배웠다.

딕셔너리에 존재하지 않는 key에 대해 dic[key]를 하면 keyerror가 뜨지만,
dic.get(key)를 해주면 None이 리턴되고 get에 두 번째 인자를 넣어주면 딕셔너리에 해당 key가 없을 때 인자값을 넣어준다.

그래서 아래처럼 짜면 훨씬 간편하다는 것을 배웠다

for n in nums:
	dic[n] = dic.get(n, 0) + 1

꿀!

👨‍💻 소스 코드

class Solution:
    def numIdenticalPairs(self, nums: List[int]) -> int:
        dic = {}
        res = 0
       
        for n in nums:
            if n in dic:
                dic[n] += 1
            else:
                dic[n] = 1
               
        for v in dic.values():
            res += v*(v-1)//2
           
        return res









좋은 웹페이지 즐겨찾기