about summary refs log tree commit diff
path: root/day04.ijs
blob: 83e779afb4801d0db0d967cb0b3211cb123ef60f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
d =: ':' splitstring&> '\w+:\S+'&rxall&> cutpara 1!:1 <'day04'

look =: 4 : 0
{. > }. (y,('';'0')) {~ ({."1 y) i. < x
)

inr =: 4 : '(-: /:~) ({. x), y, (}. x)'

ks =: 0 = [: # (<;._1 ' byr iyr eyr hgt hcl ecl pid')&-.

hv =: 3 : 0
(>(('cm';'in') i. <_2 {. y) { 150 193;59 76; 1 0) inr ". _2 }. y
)

rv =: 3 : 0
l =. ks {."1 y
l =. l *. 1920 2002 inr ". 'byr' look y
l =. l *. 2010 2020 inr ". 'iyr' look y
l =. l *. 2020 2030 inr ". 'eyr' look y
l =. l *. '#[0-9a-f]{6}' rxeq 'hcl' look y
l =. l *. 'amb|blu|brn|gry|grn|hzl|oth' rxeq 'ecl' look y
l =. l *. '[0-9]{9}' rxeq 'pid' look y
     l *. hv 'hgt' look y
)

+/ks"1 {."1 d   NB. 228
+/rv"2 d        NB. 175