Advertisement
Guest User

Day 4 Common Lisp

a guest
Dec 4th, 2019
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. ;; part 1
  2. (loop for i from 138307 to 654504
  3. do (setq list1 (map 'list #'digit-char-p (prin1-to-string i)))
  4. when (and (or
  5. (> (count #\1 (write-to-string i)) 1)
  6. (> (count #\2 (write-to-string i)) 1)
  7. (> (count #\3 (write-to-string i)) 1)
  8. (> (count #\4 (write-to-string i)) 1)
  9. (> (count #\5 (write-to-string i)) 1)
  10. (> (count #\6 (write-to-string i)) 1)
  11. (> (count #\7 (write-to-string i)) 1)
  12. (> (count #\8 (write-to-string i)) 1)
  13. (> (count #\9 (write-to-string i)) 1))
  14. (and (<= (nth 0 list1) (nth 1 list1))
  15. (<= (nth 1 list1) (nth 2 list1))
  16. (<= (nth 2 list1) (nth 3 list1))
  17. (<= (nth 3 list1) (nth 4 list1))
  18. (<= (nth 4 list1) (nth 5 list1))))
  19. count i into numcount
  20. do (setq ans numcount))
  21.  
  22. ;; part2
  23. (loop for i from 138307 to 654504
  24. do (setq list1 (map 'list #'digit-char-p (prin1-to-string i)))
  25. when (and (or
  26. (= (count #\1 (write-to-string i)) 2)
  27. (= (count #\2 (write-to-string i)) 2)
  28. (= (count #\3 (write-to-string i)) 2)
  29. (= (count #\4 (write-to-string i)) 2)
  30. (= (count #\5 (write-to-string i)) 2)
  31. (= (count #\6 (write-to-string i)) 2)
  32. (= (count #\7 (write-to-string i)) 2)
  33. (= (count #\8 (write-to-string i)) 2)
  34. (= (count #\9 (write-to-string i)) 2))
  35. (and (<= (nth 0 list1) (nth 1 list1))
  36. (<= (nth 1 list1) (nth 2 list1))
  37. (<= (nth 2 list1) (nth 3 list1))
  38. (<= (nth 3 list1) (nth 4 list1))
  39. (<= (nth 4 list1) (nth 5 list1))))
  40. count i into numcount
  41. do (setq ans numcount))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement