04_password.py 587 B

123456789101112131415161718192021222324252627
  1. #!/usr/bin/env python3
  2. def get_groups(pw):
  3. prev = 10
  4. group = 1
  5. groups = []
  6. while pw:
  7. d = pw % 10
  8. if d > prev:
  9. return []
  10. if d == prev:
  11. group += 1
  12. else:
  13. groups.append(group)
  14. group = 1
  15. prev = d
  16. pw //= 10
  17. groups.append(group)
  18. return groups
  19. pmin, pmax = 240920, 789857
  20. relaxed = strict = 0
  21. for n in range(pmin, pmax + 1):
  22. groups = list(get_groups(n))
  23. relaxed += int(any(group >= 2 for group in groups))
  24. strict += int(2 in groups)
  25. print(relaxed)
  26. print(strict)