본문 바로가기

0/leetcode

914. X of a Kind in a Deck of Cards

반응형
class Solution:
    def hasGroupsSizeX(self, deck: List[int]) -> bool:
        
        if len(deck) < 2 :
            return False
        
        m = collections.defaultdict(int)
        
        for i in deck :
            m[i] += 1
        
        psize = m[deck[0]]
        
        for i in m.values() :
            psize = self.gcd(psize, i)
            if psize == 1 :
                return False
        
        return True
    
    def gcd(self, a, b) :
        
        while b != 0 :
            n = a % b
            a = b
            b = n
            
        return a
        

 

정리 : 

최대 공약수 활용.

# 최대공약수 (Greatest Common Divisor)를 구하는 가장 쉬운 방법: 유클리드 호제법

def gcd(a, b) :

	while b != 0 :
		tmp = a%b
		a = b
		b = tmp
        
	return a
    
반응형

'0 > leetcode' 카테고리의 다른 글

398. Random Pick Index  (0) 2020.10.27
388. Longest Absolute File Path  (0) 2020.10.27
41. First Missing Positive  (0) 2020.09.30
134. Gas Station  (0) 2020.09.24
416. Partition Equal Subset Sum  (0) 2020.09.18