숫자 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)의 몫
- temp mod 10이 i와 같으면
- 참 반환
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
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