From 3cf10af7c1bc1e27421f57ce3873a5504ca10f9d Mon Sep 17 00:00:00 2001 From: Jonathan Chan Date: Fri, 10 Dec 2021 10:32:57 -0800 Subject: [PATCH] Day 10: Squish cases. --- src/10.rkt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/10.rkt b/src/10.rkt index cc46a3a..1e78535 100644 --- a/src/10.rkt +++ b/src/10.rkt @@ -8,6 +8,8 @@ (assocf char '((#\) . 3) (#\] . 57) (#\} . 1197) (#\> . 25137)))) (define (incomplete-score char) (assocf char '((#\( . 1) (#\[ . 2) (#\{ . 3) (#\< . 4)))) +(define (matching open close) + (member `(,open ,close) '((#\( #\)) (#\[ #\]) (#\{ #\}) (#\< #\>)))) (define (autocomplete-score stack) (for/fold ([score 0]) @@ -26,10 +28,7 @@ [(cons char line) (match* (char stack) [((or #\( #\[ #\{ #\<) _) (loop (cons char stack) line)] - [(#\) (cons #\( stack)) (loop stack line)] - [(#\] (cons #\[ stack)) (loop stack line)] - [(#\} (cons #\{ stack)) (loop stack line)] - [(#\> (cons #\< stack)) (loop stack line)] + [(close (cons open stack)) #:when (matching open close) (loop stack line)] [(_ _) (values (+ corrupted (corrupted-score char)) incomplete)])])))) (show-solution part1 part2) \ No newline at end of file