균형이 맞는지 여부를 확인해야 하는 숫자가 있다고 가정합니다. 모든 자릿수의 빈도가 같거나 같지 않으면 숫자가 균형을 이룹니다.
따라서 입력이 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