aoc2025

Advent of Code solutions for 2025 in Common Lisp
Log | Files | Refs | README

03.lisp (546B)


      1 (require "asdf")
      2 
      3 (defun day3-part1 (input-file)
      4 	(with-open-file (s input-file)
      5 		(do ((total 0 (+ total (calc-max-joltage line)))
      6 			  (line (read-line s nil) (read-line s nil)))
      7 			 ((equal line nil) total))))
      8 
      9 (defun calc-max-joltage (batteries)
     10 	(let ((l (length batteries))
     11 		  (mx 0))
     12 		(do ((n 0 (1+ n)))
     13 			((>= n l))
     14 			(do ((m (1+ n) (1+ m)))
     15 				((>= m l))
     16 				(setf mx (max mx (joltage (subseq batteries n (1+ n)) (subseq batteries m (1+ m)))))))
     17 		mx))
     18 
     19 (defun joltage (b1 b2)
     20 	(+ 
     21 		(* 10 (parse-integer b1))
     22 		(parse-integer b2)))