Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 숫자의 모든 숫자의 빈도가 동일한지 확인

<시간/>

균형이 맞는지 여부를 확인해야 하는 숫자가 있다고 가정합니다. 모든 자릿수의 빈도가 같거나 같지 않으면 숫자가 균형을 이룹니다.

따라서 입력이 num =562256과 같으면 각 숫자의 빈도가 2이므로 출력은 True가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 숫자 :=숫자를 문자열로 변환
  • freq :=숫자의 자릿수 빈도를 포함하는 지도
  • freq_values ​​:=숫자에서 모든 자릿수 빈도 값을 가져와 새 집합을 만듭니다.
  • freq_values의 크기가 1과 같으면
    • 참 반환
  • 거짓을 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예시 코드

from collections import defaultdict

def solve(num):
   number = str(num)
 
   freq = defaultdict(int)
   n = len(number)
 
   for i in range(n):
      freq[int(number[i])] += 1
 
   freq_values = set(freq.values())
 
   if len(freq_values) == 1:
      return True
   return False
   
num = 562256
print(solve(num))

입력

562256

출력

True