Complete 2023 day 2

quickdudley
Aug 27, 2024, 11:00 PM
Q3HA5WQ22F72XJDVXUF3UOTGY7V5Z7XJIYW5JB4JIF2VIV7JMOZAC

Dependencies

  • [2] PUGKJMPL Refactor 2023 day 2: parse each line into a single hash table
  • [3] RDQKKB5G 2023 day 2 part 1

Change contents

  • replacement in 2023/day2.lisp at line 89
    [2.116][2.116:162]()
    count = (let ((tok (next-token toks)))
    [2.116]
    [2.162]
    count = (let ((tok (next-token toks)))
  • replacement in 2023/day2.lisp at line 97
    [2.437][2.437:509]()
    (warn (format nil "Unrecognized delimiter: ~a" delim))))
    [2.437]
    [2.509]
    (warn (format nil "Unrecognized delimiter: ~a" delim))))
  • edit in 2023/day2.lisp at line 106
    [3.3811]
    [3.3811]
    (defun power-product (bag)
    (let ((p 1))
    (loop for v being each hash-value in bag
    do (setf p (* p v)))
    p))
  • replacement in 2023/day2.lisp at line 113
    [3.3842][3.3842:4017](),[3.4017][2.540:585](),[2.585][3.4068:4127](),[3.4068][3.4068:4127]()
    (format t "~a~%" (loop for line = (read-line instream nil)
    while line
    sum (if (equalp line "")
    0
    (let ((game (parse-line line)))
    (if (check-limit (cdr game))
    (car game)
    0))))))
    [3.3842]
    [3.4127]
    (let ((part1 0)
    (part2 0))
    (loop for line = (read-line instream nil)
    while line
    do (let ((game (parse-line line)))
    (setf part1 (+ part1 (if (check-limit (cdr game))
    (car game)
    0)))
    (setf part2 (+ part2 (power-product (cdr game))))))
    (format t "Part 1: ~a~%" part1)
    (format t "Part 2: ~a~%" part2)))