d02
parent
ebe18c00b0
commit
2849dc3c0a
@ -0,0 +1,7 @@
|
|||||||
|
abcde
|
||||||
|
fghij
|
||||||
|
klmno
|
||||||
|
pqrst
|
||||||
|
fguij
|
||||||
|
axcye
|
||||||
|
wvxyz
|
@ -0,0 +1,37 @@
|
|||||||
|
#lang debug br
|
||||||
|
|
||||||
|
(define fp (open-input-file "02.txt"))
|
||||||
|
|
||||||
|
(define ids
|
||||||
|
(map string-trim (port->lines fp)))
|
||||||
|
|
||||||
|
(define ((cluster len) chars)
|
||||||
|
(for/or ([group (in-list (group-by values chars char=?))])
|
||||||
|
(= len (length group))))
|
||||||
|
|
||||||
|
(define (★)
|
||||||
|
(define charss (map string->list ids))
|
||||||
|
(define twos (length (filter (cluster 2) charss)))
|
||||||
|
(define threes (length (filter (cluster 3) charss)))
|
||||||
|
(* twos threes))
|
||||||
|
|
||||||
|
(define (differ-by-one? id id2)
|
||||||
|
(= (length (common-chars id id2)) (sub1 (string-length id))))
|
||||||
|
|
||||||
|
(define (common-chars id id2)
|
||||||
|
(for/list ([c (in-string id)]
|
||||||
|
[c2 (in-string id2)]
|
||||||
|
#:when (char=? c c2))
|
||||||
|
c))
|
||||||
|
|
||||||
|
(define (★★)
|
||||||
|
(list->string
|
||||||
|
(for*/first ([id (in-list ids)]
|
||||||
|
[id2 (in-list (cdr ids))]
|
||||||
|
#:when (differ-by-one? id id2))
|
||||||
|
(common-chars id id2))))
|
||||||
|
|
||||||
|
(module+ main
|
||||||
|
(require rackunit)
|
||||||
|
(check-equal? (time (★)) 6696)
|
||||||
|
(check-equal? (time (★★)) "bvnfawcnyoeyudzrpgslimtkj"))
|
@ -0,0 +1,250 @@
|
|||||||
|
bvhfawknyoqsudzrpgslecmtkj
|
||||||
|
bpufawcnyoqxldzrpgsleimtkj
|
||||||
|
bvhfawcnyoqxqdzrplsleimtkf
|
||||||
|
bvhoagcnyoqxudzrpgsleixtkj
|
||||||
|
bxvfgwcnyoqxudzrpgsleimtkj
|
||||||
|
bvqfawcngoqxudzrpgsleiktkj
|
||||||
|
bvhfawcnmoqxuyzrpgsleimtkp
|
||||||
|
bvheawcnyomxsdzrpgsleimtkj
|
||||||
|
bcdfawcnyoqxudzrpgsyeimtkj
|
||||||
|
bvhpawcnyoqxudzrpgsteimtkz
|
||||||
|
bxhfawcnyozxudzrpgsleimtoj
|
||||||
|
bvhfdwcnyozxudzrposleimtkj
|
||||||
|
bvpfawcnyotxudzrpgsleimtkq
|
||||||
|
bvhfpwccyoqxudzrpgslkimtkj
|
||||||
|
bvhfawcnyoqxudirpgsreimtsj
|
||||||
|
bvhfawcnyoqxudzppgbleemtkj
|
||||||
|
bvhzawcnyoqxudqrpgslvimtkj
|
||||||
|
bvhfawclyoqxudirpgsleimtka
|
||||||
|
bvhgawfnyoqxudzrpguleimtkj
|
||||||
|
bvhfazcnytqxudzrpgslvimtkj
|
||||||
|
bvhfawcnygxxudzrpgjleimtkj
|
||||||
|
bxhfawcnyoqxudzipgsleimtxj
|
||||||
|
bvhptwcnyoqxudzrpgsleimtmj
|
||||||
|
bzhfawcgyooxudzrpgsleimtkj
|
||||||
|
bvhjlwcnyokxudzrpgsleimtkj
|
||||||
|
bvhfawcnyoqxudbrmgslesmtkj
|
||||||
|
bvhfawcnysixudzwpgsleimtkj
|
||||||
|
bvhflwcnymqxxdzrpgsleimtkj
|
||||||
|
bvifawcnyoyxudzrpgsleimtvj
|
||||||
|
bvhfawcnyofxudlrpgsheimtkj
|
||||||
|
bvhbawcmyoqxudzrpggleimtkj
|
||||||
|
bhhxgwcnyoqxudzrpgsleimtkj
|
||||||
|
bvhfawgnyoqxbdzrpgsleimfkj
|
||||||
|
bvhfawcnyoqxudcrngsleimykj
|
||||||
|
bvhfawcnyofxudzrpgslebgtkj
|
||||||
|
bvhfaocnybqxudzapgsleimtkj
|
||||||
|
bvhxawcnyodxudzrpfsleimtkj
|
||||||
|
bchfawcnyoqxudrrtgsleimtkj
|
||||||
|
bvhfawcqyoqxudzdpgsltimtkj
|
||||||
|
bvhfawknyoqxudzrpnsleimtbj
|
||||||
|
cihfawcnyoqxudirpgsleimtkj
|
||||||
|
bvlfawpnyoqxudzrpgslgimtkj
|
||||||
|
bulfawcnyoqbudzrpgsleimtkj
|
||||||
|
bvhfajcnyoqkudzrpgsoeimtkj
|
||||||
|
bvhrakcnyoqxudzrpgsleimjkj
|
||||||
|
bvbftwcnyoqxuvzrpgsleimtkj
|
||||||
|
bvhfhwcnyoqxudzrpgslelmtbj
|
||||||
|
bvhyawcntoqxudzrpgsleimtuj
|
||||||
|
xvhuawcnyoqxuqzrpgsleimtkj
|
||||||
|
pvhfawcnyoqxudzdpglleimtkj
|
||||||
|
bvhfawsnyoqxudzrpgvlefmtkj
|
||||||
|
bvhfawcnyoqxudzrpgepeiwtkj
|
||||||
|
bvhfawcnyoqxudzrphsleittkr
|
||||||
|
dvhfawcnyoqxudzrpkslzimtkj
|
||||||
|
bvhfawpnyoqxudzrpgmlcimtkj
|
||||||
|
bvhsawcnyzqxudzrpgsaeimtkj
|
||||||
|
bdhfawcnyoqxudzrpasleiwtkj
|
||||||
|
bvhfawbnyoqxpdbrpgsleimtkj
|
||||||
|
mvhfawwnyoqxujzrpgsleimtkj
|
||||||
|
bvafawcnyoyxudzrpgsleidtkj
|
||||||
|
bvhyawcnyoqxudztpgzleimtkj
|
||||||
|
besfawcnyoqxudzrpgsleimdkj
|
||||||
|
bvhfawcnyoqxudrrpgsjeimjkj
|
||||||
|
xvhfkwcnyoqxudzcpgsleimtkj
|
||||||
|
bvhfawcnyeqdudzrpgzleimtkj
|
||||||
|
bvhfuwcnybqxudzrpgsleimttj
|
||||||
|
lvhfawcnyoqhudzdpgsleimtkj
|
||||||
|
bvhfawcnyoqxudzrpgslevwtnj
|
||||||
|
bvhfadcnzoqxxdzrpgsleimtkj
|
||||||
|
bvsfawcnyoqxpdzrpgileimtkj
|
||||||
|
bzhfaycnyoqxudzrpgsxeimtkj
|
||||||
|
bwhfdwcnyoqxudzrpgsleimtkz
|
||||||
|
bvhfawcnyoqxudzrpgsjlimtkm
|
||||||
|
bvhfawcnyoqxudsrwgsleimtlj
|
||||||
|
bbhfalynyoqxudzrpgsleimtkj
|
||||||
|
bvhfawcnyeqxudzrpglleimtkr
|
||||||
|
bvhfawnnboqxurzrpgsleimtkj
|
||||||
|
yvhfawcnyoqxudzrpgslzimtpj
|
||||||
|
bvhfjwcnyoqxqdxrpgsleimtkj
|
||||||
|
bthfawcnyoqfudzrpgslhimtkj
|
||||||
|
bvhfawchuoqxudzqpgsleimtkj
|
||||||
|
bvhfawcndoqxudzrugsleimrkj
|
||||||
|
bvhfawcnnoqxjdzrpgsleidtkj
|
||||||
|
bvhpawcnyoqkudzrpgsleimtzj
|
||||||
|
bvhfaiinyoqxudzopgsleimtkj
|
||||||
|
bvhfawcnyxqxuizrigsleimtkj
|
||||||
|
bvnfawcnyoqxudzqpgsleimbkj
|
||||||
|
bvnfawcnyoeyudzrpgsleimtkj
|
||||||
|
bvhfawcnyoqxudarpgsieimtoj
|
||||||
|
bthcawcnyoqxudlrpgsleimtkj
|
||||||
|
bvhfnwcnyozxudzrpgsleomtkj
|
||||||
|
bpwfawcnyoqxudzrpgskeimtkj
|
||||||
|
bvhfapcnyoqxudnrpgsxeimtkj
|
||||||
|
bvhfdwcnyoqxubzrxgsleimtkj
|
||||||
|
fvhfawcnyoqxjdzrpgsleirtkj
|
||||||
|
bvhfawcneoqxudzrvzsleimtkj
|
||||||
|
bvhaawcnyoqxudzrpgsleimtex
|
||||||
|
bvhfawcnyojxudvrpgsleimckj
|
||||||
|
bvlfawcnyoqxddzrpgsleimtko
|
||||||
|
bvhfawclfoqxudzrpgsleiktkj
|
||||||
|
bvhfawciyobxudzrpgkleimtkj
|
||||||
|
bvhfpwcnyoqxudzrpgsqeimtkd
|
||||||
|
bvhyawcnyyqxudzrkgsleimtkj
|
||||||
|
bvhfawcncoqxudzrphsaeimtkj
|
||||||
|
bvhfawmnyoqxudzrpgifeimtkj
|
||||||
|
bvhfawcjyoqxudzjpgszeimtkj
|
||||||
|
bohfawcnwoqxudzrpgsleimwkj
|
||||||
|
bvhfaucnyoqxudzrpgfluimtkj
|
||||||
|
bvhfawlnyoqgudzrpgwleimtkj
|
||||||
|
bmhfawcnyoqxndzrpgsleymtkj
|
||||||
|
bvhfawcngoqxudzrpzxleimtkj
|
||||||
|
bihfawcnyoqxudrrpgsleimokj
|
||||||
|
lvhfawcnylqxudzrpgsleintkj
|
||||||
|
bvhfawcnyoqvugzrqgsleimtkj
|
||||||
|
bvhfawcnyoqxudzgpgslqimtij
|
||||||
|
bvhfawcnyoqludzrpgslnimtcj
|
||||||
|
hvhfawcnyolxudzrpgsmeimtkj
|
||||||
|
nvhfawcdkoqxudzrpgsleimtkj
|
||||||
|
bvhfawcnyoqxkdzrggsneimtkj
|
||||||
|
bvhfawnnyoqxudzrpgqleibtkj
|
||||||
|
bvhfawyuyoqxudzrhgsleimtkj
|
||||||
|
wvhfbwcnyoqxtdzrpgsleimtkj
|
||||||
|
bvhfawcnyoqxedzzpgoleimtkj
|
||||||
|
bvhfawcnioqxunzrpgsleimtnj
|
||||||
|
bvhfawctyoqxudzrpgsldkmtkj
|
||||||
|
bvhfawcnyonxudzrpgsleitpkj
|
||||||
|
bvefawcnyoqaudzhpgsleimtkj
|
||||||
|
bvhfawcnyxqxudzrpgslelmbkj
|
||||||
|
bvhfamrnyoqxudzrpgsleimgkj
|
||||||
|
bvhfaqcnyoqxudzrpgsaeimekj
|
||||||
|
bvhfawcnyoqcidzrpgsleimvkj
|
||||||
|
bvhfawcnnorxudzrpgsmeimtkj
|
||||||
|
bvroawcnyoqxudzrpgsleiwtkj
|
||||||
|
bvhfwwcnyoqxudzrpaslewmtkj
|
||||||
|
bvsfawcnyoqxudzcpgszeimtkj
|
||||||
|
bkhfmwcnyoqjudzrpgsleimtkj
|
||||||
|
bvtfawcnyoqxudzrcgslecmtkj
|
||||||
|
bvhfawcnypzxudzrpgsleimtkv
|
||||||
|
bvhfawcnyoqzudzrfgtleimtkj
|
||||||
|
bvhpawcnyoqxudhrpgsleimtko
|
||||||
|
tvhfawcnyoqxudzxpfsleimtkj
|
||||||
|
bvhfawccyofxudzrpqsleimtkj
|
||||||
|
bvnfawtnyoqxuzzrpgsleimtkj
|
||||||
|
bvhfamcnuwqxudzrpgsleimtkj
|
||||||
|
bvhfawcfyoqxudjrpgsleimrkj
|
||||||
|
bvhpalcnyoqxudzrpgslexmtkj
|
||||||
|
bvhfawcnjsqxudzlpgsleimtkj
|
||||||
|
bvhfafcnioqxydzrpgsleimtkj
|
||||||
|
bvzfawcnyxqxudzgpgsleimtkj
|
||||||
|
bvhzawcnyoqxudzrpgslewctkj
|
||||||
|
bvhiawcnhoqrudzrpgsleimtkj
|
||||||
|
bvhfawcnyoqxuszrggslenmtkj
|
||||||
|
bvhfowcnyoqxudzrptseeimtkj
|
||||||
|
behfawfnyoqxudzrpgsleimlkj
|
||||||
|
lvhfawcnyoqxudsrpgvleimtkj
|
||||||
|
bvhfawnnyaqxudzrpgsqeimtkj
|
||||||
|
lvhfawcnfoqxvdzrpgsleimtkj
|
||||||
|
svhxawcnyoqxudzrpqsleimtkj
|
||||||
|
bvhfawqnfoqxudzrpgsleimkkj
|
||||||
|
bvhfafcnyoqcudzrpgsleimtcj
|
||||||
|
bvhfyfcntoqxudzrpgsleimtkj
|
||||||
|
bvhfpwcnyoqxudzrpgsleimumj
|
||||||
|
bvhfawccyoqxudzrqgrleimtkj
|
||||||
|
bvhfawqnyoqxudzbpgsleimkkj
|
||||||
|
bvhflwcnyoqxudzrpxsleemtkj
|
||||||
|
bvhfawcnyoqxuezrpgslehrtkj
|
||||||
|
bvhfawceyoqxudzrpgsleimswj
|
||||||
|
bvhfawcncohgudzrpgsleimtkj
|
||||||
|
bahfawcnyoqxgdzrpgsleamtkj
|
||||||
|
yvhfawcnyoqxudzrppslrimtkj
|
||||||
|
fvhfawcmyoqxudzrpgskeimtkj
|
||||||
|
bvylawsnyoqxudzrpgsleimtkj
|
||||||
|
bvhfswcnyyqxedzrpgsleimtkj
|
||||||
|
fvrfawcnyoqxudzrpgzleimtkj
|
||||||
|
bvhfawcnyoqxuvzrpgslermtks
|
||||||
|
bvhkawccyoqxudzcpgsleimtkj
|
||||||
|
bvhfaobnyoqxudzrprsleimtkj
|
||||||
|
bvbfawcnyoqxudirpgsleimhkj
|
||||||
|
bvhfawcnyoqxudzvpgsueimtgj
|
||||||
|
bvhxawcnyoqxudzrpgsleimtgi
|
||||||
|
svhfawcjyoqxuszrpgsleimtkj
|
||||||
|
bvnfawcnyoeyudzrpgsldimtkj
|
||||||
|
bvhfawcnyoqxuhzrpgsleimcki
|
||||||
|
bvhfvwcnyoqxudzizgsleimtkj
|
||||||
|
bvhfapznyohxudzrpgsleimtkj
|
||||||
|
bvhfaelnyosxudzrpgsleimtkj
|
||||||
|
xvhfawcnmoqxuhzrpgsleimtkj
|
||||||
|
bjhfawcnyaqxutzrpgsleimtkj
|
||||||
|
bvhfawcnyohxudzrpgslgnmtkj
|
||||||
|
bvhfawcnyoqxudzrppsreimtkx
|
||||||
|
fvhfapcnyoqyudzrpgsleimtkj
|
||||||
|
qvhfafcnyoqxudorpgsleimtkj
|
||||||
|
bvhfawcnyoqxedzrwgsleimtvj
|
||||||
|
bvhfawgnyoqxudzupgqleimtkj
|
||||||
|
bvhfowctyoqxudzrpgbleimtkj
|
||||||
|
bvhwawcnyoqxudzapgslvimtkj
|
||||||
|
bvhfadcnyoqxudzrugsleimtuj
|
||||||
|
bvhfawcnyosxudzlpgsleamtkj
|
||||||
|
bvhfawcnywqxuqzrpgsloimtkj
|
||||||
|
bvhfawcnyoqxumzrpgvlfimtkj
|
||||||
|
bvhfawcgyoqxbdzrpgsleomtkj
|
||||||
|
bvhfahcnyoqwudzrfgsleimtkj
|
||||||
|
gvbfawcnyrqxudzrpgsleimtkj
|
||||||
|
svhfawcnyoqxudlrpgsleimtkx
|
||||||
|
avhfafcnyoqxuhzrpgsleimtkj
|
||||||
|
bvhfawcsyoqxuazrpgsleimtej
|
||||||
|
bvofawcnyoqxudzrpgsteimtkf
|
||||||
|
bvhfajcnyoqxudzqpgszeimtkj
|
||||||
|
bvhfawcsyoqxudzrmgsleiktkj
|
||||||
|
mvhfawcnyoqxudzrpgkluimtkj
|
||||||
|
bvhfawcnhoqxudzrpgslwhmtkj
|
||||||
|
bmhaawsnyoqxudzrpgsleimtkj
|
||||||
|
bvhfawcnyoqxudzhpgsleimhyj
|
||||||
|
bvhfxwcnyoqxsdzypgsleimtkj
|
||||||
|
bvhpawcyyoqxuczrpgsleimtkj
|
||||||
|
bvomawcnyovxudzrpgsleimtkj
|
||||||
|
bvhfawcnjvqxudzrpgsleimtkt
|
||||||
|
nvhfawcnyqqxudzrpgsleittkj
|
||||||
|
bvhiawcnyzqxudzrpysleimtkj
|
||||||
|
bvhdawcnyoqxukzrpgsleimtuj
|
||||||
|
bvhfawcnyyxxudzrpgslzimtkj
|
||||||
|
hvhfawcnyoqxudzupgslemmtkj
|
||||||
|
byhfawknyoqxudzrpgsleimtkb
|
||||||
|
bvhfawcnyoqxudzrpasleihakj
|
||||||
|
bvafahcnyaqxudzrpgsleimtkj
|
||||||
|
bkhfawcnyoqxudzrpgllepmtkj
|
||||||
|
bghfawcnycqxuzzrpgsleimtkj
|
||||||
|
bvhfawcnyoqxudzrbgeleimtkl
|
||||||
|
bvhfascnyoqgudzrpgsveimtkj
|
||||||
|
bvhfawnnyoqxudzrpgsleimtdl
|
||||||
|
bvhqawcnyoqxudzrpgsleimgrj
|
||||||
|
bvhsawdwyoqxudzrpgsleimtkj
|
||||||
|
bvhfawcnyoqxudzrpgaleipttj
|
||||||
|
bvhfawcnrlqxudzrbgsleimtkj
|
||||||
|
bvhfdwcnyoqxudzqpcsleimtkj
|
||||||
|
bvhfawcnyoqxudzopgslexmokj
|
||||||
|
bvhfawcoyoqxudzrpghlewmtkj
|
||||||
|
bvhfozcnykqxudzrpgsleimtkj
|
||||||
|
bvhfawcnyoqxuvzrpgslrimtkr
|
||||||
|
bvhfrncnyoqrudzrpgsleimtkj
|
||||||
|
bvhfawcnyocxuizrpgslefmtkj
|
||||||
|
bvhfawywyoqxudzrpgsleimxkj
|
||||||
|
bvhfawcnyoqxugzrpgslrimtij
|
||||||
|
bvtfawcnyoqxudzcpgsleimtfj
|
||||||
|
bvhfawcnyoqxuzzspgsleimtkz
|
||||||
|
bvhfawcnzoqxvdzrpgslsimtkj
|
||||||
|
bvhfzwcnyoqxudzrpgslenmhkj
|
||||||
|
bvhfkccnyoqxudzrpgzleimtkj
|
||||||
|
bvhfawcnyoqzudzrpgslhimwkj
|
||||||
|
bzhfawvnyooxudzrpgsleimtkj
|
@ -0,0 +1,12 @@
|
|||||||
|
#lang debug br
|
||||||
|
|
||||||
|
#;(define (★)
|
||||||
|
)
|
||||||
|
|
||||||
|
#;(define (★★)
|
||||||
|
)
|
||||||
|
|
||||||
|
#;(module+ main
|
||||||
|
(require rackunit)
|
||||||
|
(check-equal? (time (★)) 454)
|
||||||
|
(check-equal? (time (★★)) 566))
|
Reference in New Issue