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

Python에서 각 숫자의 빈도가 숫자보다 작은지 확인

<시간/>

숫자 n이 있다고 가정하면 n의 각 숫자가 숫자 자체보다 작거나 같은지 확인해야 합니다.

따라서 입력이 n =5162569와 같으면 숫자와 빈도가 (5, 2), (1, 1), (6, 2) 및 (9, 1)이므로 출력은 True가 됩니다. 주파수는 숫자 값과 같거나 작습니다.

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

  • 0에서 9 사이의 i에 대해
    • temp :=n, cnt :=0
    • temp가 0이 아닌 동안 do
      • temp mod 10이 i와 같으면
        • cnt :=cnt + 1
      • 만약 cnt> 나는, 그러면
        • 거짓을 반환
      • temp :=(temp / 10)의 몫
  • 참 반환

예시

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

def solve(n):
   for i in range(10):
      temp = n
      cnt = 0
      while temp:
         if temp % 10 == i:
            cnt += 1
         if cnt > i:
            return False
         temp //= 10
   return True
s = 5162569
print(solve(s))

입력

5162569

출력

True