! Copyright (C) 2022 Doug Coleman. ! See http://factorcode.org/license.txt for BSD license. USING: kernel math sequences sets splitting ; IN: 2022-aoc3 : score ( n -- n' ) dup CHAR: a >= [ CHAR: a - 1 + ] [ CHAR: A - 1 + 26 + ] if ; : process-line ( string -- n ) dup length 2 /i cut intersect [ score ] map sum ; : aoc3-1 ( string -- n ) split-lines 0 [ process-line + ] reduce ; : process-lines ( strings -- n ) first3 intersect intersect [ score ] map sum ; : aoc3-2 ( string -- n ) split-lines 3 group 0 [ process-lines + ] reduce ;