Day 25
This commit is contained in:
parent
789c571f7a
commit
883a091d6b
|
@ -0,0 +1,127 @@
|
||||||
|
1---210=1=02-202
|
||||||
|
2--200=0112-
|
||||||
|
112=2=200=02=
|
||||||
|
11-1
|
||||||
|
1=1=112011=2===
|
||||||
|
2-=11==1
|
||||||
|
1==210-00=0=
|
||||||
|
1-2===-11--0-020
|
||||||
|
111==121==--
|
||||||
|
1-=2-11-112
|
||||||
|
1=-10-10-11
|
||||||
|
1=21101==100=0-01
|
||||||
|
1222=0=22=1==1=
|
||||||
|
122-==-22
|
||||||
|
2=-=02
|
||||||
|
101-2-01
|
||||||
|
122-
|
||||||
|
2=111-22-2=202-001
|
||||||
|
1=1=
|
||||||
|
10=2
|
||||||
|
2-22-0=20-11
|
||||||
|
2=-22-10
|
||||||
|
1=1
|
||||||
|
10-==-=01202=0101
|
||||||
|
121212101012=1
|
||||||
|
1=2212=2-022021=
|
||||||
|
2=00=10--2-020-=20
|
||||||
|
1-0222-22-
|
||||||
|
1=011
|
||||||
|
1120--2-=1=22=1
|
||||||
|
102==2----1
|
||||||
|
11=1020=0--102==0-
|
||||||
|
12--0-11-21--1=2
|
||||||
|
220-01010-111
|
||||||
|
2=2=1=0=1-001-2
|
||||||
|
1--0-=
|
||||||
|
1111-01
|
||||||
|
1-2=-1=1221-00==1=1
|
||||||
|
1-=0-00----022121=0=
|
||||||
|
2-
|
||||||
|
2-111200=2-12-0
|
||||||
|
1002-002
|
||||||
|
2020
|
||||||
|
110=12==--1=12=2==
|
||||||
|
102-11122--0
|
||||||
|
2=-=2-=1===11
|
||||||
|
110=20
|
||||||
|
2--12
|
||||||
|
1=-2-1=01=
|
||||||
|
11122=211
|
||||||
|
1-0002
|
||||||
|
1==1=21011=
|
||||||
|
1=0-00122
|
||||||
|
1---0112-=222
|
||||||
|
2-222120=-
|
||||||
|
1000
|
||||||
|
2-010=-0-
|
||||||
|
20=12000202221
|
||||||
|
1120=2=21-2
|
||||||
|
12==-1
|
||||||
|
2=2==11=10=0
|
||||||
|
1-0-001=-2
|
||||||
|
20==2-02==--=101
|
||||||
|
111001--20102
|
||||||
|
121=21
|
||||||
|
1=1-==2-=121
|
||||||
|
10100==0=
|
||||||
|
2=
|
||||||
|
1=-0=20---=-02=1==
|
||||||
|
1-0=12=0=2=12
|
||||||
|
21---2---2
|
||||||
|
12=-=--=0
|
||||||
|
2=002--=10
|
||||||
|
1=1=-21==010=1-=2-
|
||||||
|
1=-10--=
|
||||||
|
20022-1---1-211
|
||||||
|
1=
|
||||||
|
1-102==2=2000
|
||||||
|
22-0222-
|
||||||
|
1120=1=202=0110-000
|
||||||
|
220102==0-
|
||||||
|
10001=====1--1-=02
|
||||||
|
2012-0=1=1=21210-2
|
||||||
|
1-=1-0-0=-
|
||||||
|
21212-==01-1=
|
||||||
|
22222=
|
||||||
|
1--21==1-1-101-022
|
||||||
|
111
|
||||||
|
1-000212
|
||||||
|
1-1=20=
|
||||||
|
1-21
|
||||||
|
212====-1
|
||||||
|
1==
|
||||||
|
2-===2-10=110=
|
||||||
|
1--22
|
||||||
|
1=0-10010=12==100=
|
||||||
|
201-
|
||||||
|
1=1000220=12
|
||||||
|
21--=-2
|
||||||
|
10-0-200=1-0122
|
||||||
|
2100222==20-=1-10
|
||||||
|
100=11111121=1
|
||||||
|
2110
|
||||||
|
21201-1
|
||||||
|
120=2-1--120001
|
||||||
|
1==1=01100112
|
||||||
|
11101
|
||||||
|
1-=1=0
|
||||||
|
2-=2
|
||||||
|
10
|
||||||
|
122=020221220-0
|
||||||
|
2==21
|
||||||
|
10=1011=1011
|
||||||
|
11=02
|
||||||
|
2210=---=0-
|
||||||
|
212
|
||||||
|
2010-0202=22
|
||||||
|
112-121111=2
|
||||||
|
101112-0-1=00
|
||||||
|
10==-=-20=-112===0
|
||||||
|
1=0-10-0
|
||||||
|
1=11-0=--110020=
|
||||||
|
20212--=-=01-11=
|
||||||
|
1==0-=0
|
||||||
|
10-21010022110-
|
||||||
|
10--12=000
|
||||||
|
10=0
|
|
@ -0,0 +1,30 @@
|
||||||
|
#lang racket
|
||||||
|
|
||||||
|
(require "../lib.rkt")
|
||||||
|
|
||||||
|
(define (snafu->number s)
|
||||||
|
(for/sum ([c (reverse (string->list s))]
|
||||||
|
[n (in-naturals)])
|
||||||
|
(* (expt 5 n)
|
||||||
|
(match c
|
||||||
|
[#\= -2]
|
||||||
|
[#\- -1]
|
||||||
|
[_ (char->number c)]))))
|
||||||
|
|
||||||
|
(define (number->snafu n)
|
||||||
|
(let loop ([n n]
|
||||||
|
[cs '()])
|
||||||
|
(if (zero? n) (list->string cs)
|
||||||
|
(match (% n 5)
|
||||||
|
[4 (loop (/ (+ n 1) 5) (cons #\- cs))]
|
||||||
|
[3 (loop (/ (+ n 2) 5) (cons #\= cs))]
|
||||||
|
[2 (loop (/ (- n 2) 5) (cons #\2 cs))]
|
||||||
|
[1 (loop (/ (- n 1) 5) (cons #\1 cs))]
|
||||||
|
[0 (loop (/ n 5) (cons #\0 cs))]))))
|
||||||
|
|
||||||
|
(define part1
|
||||||
|
(number->snafu
|
||||||
|
(for/sum ([req (problem-input 25)])
|
||||||
|
(snafu->number req))))
|
||||||
|
|
||||||
|
(show-solution part1 #f)
|
Loading…
Reference in New Issue