2018 Day 02 Complete

This commit is contained in:
Brian Buller 2018-12-01 23:21:34 -06:00
parent 2e0459813d
commit 97d81128f1
3 changed files with 327 additions and 0 deletions

76
2018/day02/day02.go Normal file
View File

@ -0,0 +1,76 @@
package main
import (
"bufio"
"fmt"
"log"
"os"
"strconv"
"strings"
)
func main() {
inp := StdinToStringSlice()
part1(inp)
part2(inp)
}
func part1(inp []string) {
var twos, threes int
for _, v := range inp {
var vintwos, vinthrees bool
for i := range v {
if !vintwos && strings.Count(v, string(v[i])) == 2 {
twos++
vintwos = true
}
if !vinthrees && strings.Count(v, string(v[i])) == 3 {
threes++
vinthrees = true
}
}
}
fmt.Println(twos * threes)
}
func part2(inp []string) {
for _, v1 := range inp {
for _, v2 := range inp {
if v1 == v2 {
continue
}
var diff int
for k := range v1 {
if v1[k] != v2[k] {
diff++
}
if diff > 1 {
continue
}
}
if diff == 1 {
fmt.Println(v1)
fmt.Println(v2)
return
}
}
}
}
func StdinToStringSlice() []string {
var input []string
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
input = append(input, scanner.Text())
}
return input
}
func Atoi(i string) int {
var ret int
var err error
if ret, err = strconv.Atoi(i); err != nil {
log.Fatal("Invalid Atoi")
}
return ret
}

1
2018/day02/go.mod Normal file
View File

@ -0,0 +1 @@
module day02

250
2018/day02/input Normal file
View File

@ -0,0 +1,250 @@
myhposlqgeauywfikztndcvrqr
mbhposlxfeauywoikztndcvjqi
mbhpoulxgeagywfikytndcvjqr
jbhposlxgeauywdikztndcvjqk
mbhpsslxueauywfikzfndcvjqr
mbhposnxgeauzyfikztndcvjqr
ibhposlxgetvywfikztndcvjqr
mbcposlxgeauywfikztxdcvjqv
mlhposltgeauywfikitndcvjqr
mbhpostxgeauywfikztndjvjqy
mboboslxglauywfikztndcvjqr
mbhpoglxgeahywfikztndcvjqp
mbhposlxgeapydpikztndcvjqr
mbhposlxseauywfikztnncljqr
mbhposlxgeauydfisztndcvjqj
mbhposlxgeaugwwikzlndcvjqr
mbhpoklxgeauywfikztndvvmqr
mbhposlxgeauywfikdtndcmjqx
mbhposlxaeauapfikztndcvjqr
mbwposgxgeauymfikztndcvjqr
mbhposlxgeauvwfirzcndcvjqr
mbhpozlxgeaqywfykztndcvjqr
mahqoslxgeauywfikzgndcvjqr
mbhposlcgexbywfikztndcvjqr
ykhposlxgeeuywfikztndcvjqr
mbhgoswxgeauywfikztndhvjqr
mbhposlxgeauywfikztnocmjqp
mbvposfageauywfikztndcvjqr
mbhpnslxgeauywfikztndgejqr
mblposfxgeauypfikztndcvjqr
mbhposlxyeauywfikzpndcvmqr
ibhposlbgeauywfikotndcvjqr
mbmposlxgeauywfiktwndcvjqr
mbhposlxgeduywfikztndfvoqr
mbhpoklxdeauywfikztndcvuqr
mbhposlxgeauywfikltnlcvuqr
mbhposlbgsauywfikztndsvjqr
mbhposlxgeauywfirzfndcbjqr
mphposlxgeauywfikztndcvjgg
mohposlcgeauywfikzsndcvjqr
mbhpovlxgeauyqfikotndcvjqr
qbhpgslxgeauywqikztndcvjqr
mbhposlxweauywfikztndtvjqm
pbhposlxgeauywfikztnncvjqm
mbbposlxpeauuwfikztndcvjqr
mbhposlxgmauyrfikztndcvjir
pbhposlqgefuywfikztndcvjqr
mbhkoslxgeauywfikztndciwqr
mbtpoflxgeauywfikztndrvjqr
mbhcoslxveguywfikztndcvjqr
mbhpovlxgeauywfhkdtndcvjqr
mbhposlxgeauywftrztndcujqr
mbhposlxgeaoywfdkzpndcvjqr
mbnposlxgeyuywfikztldcvjqr
mbaposlxweauywfikftndcvjqr
mbhposljgeauywfikztcdcvvqr
nbhpkslxgeauywfikzwndcvjqr
mbhtoslxgeauywfikzkndcvjdr
mbhposxxgeaxywfikztndsvjqr
mbdpoflxgeauywfisztndcvjqr
mbhposvxgeauywfikztnscvnqr
mbcposlxghauywfikztndcgjqr
mbhpovlxgeauywpckztndcvjqr
mbhpfslxgeauywbikntndcvjqr
mbhpowyxgeauywfikztndcvjcr
mbhposlxoeatywfikztndcvoqr
mchpfslxgeauywfikztidcvjqr
mbhposvxgearywfikztndcvjcr
mbhposlxgeauywfpcztnduvjqr
mbhposlxgmauyyfiqztndcvjqr
mbhposlxteauuwfikwtndcvjqr
mbhpotlspeauywfikztndcvjqr
mbhpoelxgeauywfikztndckjkr
mbhpnslxgeauywfikztndcvkqs
mbhpksfxgwauywfikztndcvjqr
mxhwoglxgeauywfdkztndcvjqr
mbhphsbjgeauywfikztndcvjqr
mbhposlxgeauwifixztndcvjqr
mbhposqxguauywfikztndcwjqr
mbhposlngeauywfikztedcvjor
nbhposlxgeauywiikztndcyjqr
mbhposlxgeauawfykztndcvbqr
mbhplslxgeauywcikztndcvjrr
fshposlxgeagywfikztndcvjqr
mbhposlxgeauymcikztndcxjqr
mbhponlxgeauyloikztndcvjqr
mbhposrxzeanywfikztndcvjqr
mbhtoslxgeajyifikztndcvjqr
mbhposixkeauywfikhtndcvjqr
mahhoslxgeaufwfikztndcvjqr
mbhpdslxteauywfikzvndcvjqr
mfhposlxgeauywfiqttndcvjqr
mbhplslxheauywfikztnscvjqr
mbhpoylxgeauywbizztndcvjqr
mbhposlhgeawywfjkztndcvjqr
mbhkoslxgkauywfilztndcvjqr
mbhposnxgeauywfikztkdcvlqr
mvhpxslxgevuywfikztndcvjqr
mbhpohlxgeauyrficztndcvjqr
mbhsosuxgewuywfikztndcvjqr
mbhpoxlxgeauywuikztnhcvjqr
mbhposlxqeauyqfikztndcvrqr
mbhpchlxgeauywfikztnhcvjqr
mbhposlxgeauywoikztndcfqqr
pbhposlxgeagmwfikztndcvjqr
mxhwoglxgeauywfikztndcvjqr
mbhpospxgaauywfikstndcvjqr
mbhwoxlxgeauywfgkztndcvjqr
mbhposlxgeauywfikvtndhvsqr
mbbposlxgesuywfikztnicvjqr
mhhjoslxgeauywfikztndccjqr
mbhkoslxgeagywffkztndcvjqr
mbhposlxgesqywfukztndcvjqr
mbdposlxgeauywfilztndcvjqp
mbhposlxgeakqwfikztedcvjqr
mbhposuxgeayywficztndcvjqr
mbhposlxgeauywfxkztndcloqr
mchposlxgeauywoiiztndcvjqr
tbhporlxgeauywfikztndcvyqr
mbhposlxoevuywfikzindcvjqr
qbhposlxfevuywfikztndcvjqr
mbhposlxfeauvwfikztndcvgqr
mbjposlxgsauywfikztnwcvjqr
vbhposlxgeauvwfikztndcvjqk
pbhposlxguauyrfikztndcvjqr
mbhposlcgeauywfiketndcviqr
mbsposlxgvauywfikztndcviqr
mbhposlxgeauynfxkztndcvjbr
mbhposlxtentywfikztndcvjqr
mbhposlxgeavywfikztndhvjnr
mbhpsvlxgeauywfikztndcvzqr
mzhpotlxgeauywfiyztndcvjqr
mbhposkqgeauywfiwztndcvjqr
mbhposlxoeakywfikztndcvjqt
mbhposlxghauywfikbdndcvjqr
mbhpossxgeauywfikqxndcvjqr
mbhposlxgearywhikztydcvjqr
mbhposlxgeaiywfikztndfvjur
mbhpxslxgoazywfikztndcvjqr
mbhposlxneauywfibqtndcvjqr
mnheoslxteauywfikztndcvjqr
mbhposlxgeauywfmkztrdcvuqr
mbhzowlxgeauywfizztndcvjqr
mbhloslxgeauyofikztnucvjqr
mbhposlxneagywfbkztndcvjqr
mbhposongeauywfikztnzcvjqr
mwyposlxgeauywfikztnqcvjqr
mbhpnqaxgeauywfikztndcvjqr
mboposlxzeauywfioztndcvjqr
mbhposledeauywfikztndqvjqr
mphpaslxgeauywfbkztndcvjqr
mbhposrxgeauywlikbtndcvjqr
ybhnoslxgeauywfihztndcvjqr
mbhposlxgeauywfikntxccvjqr
mbhposlxgeauqwfikutndcfjqr
mbhposlxglabywfikztidcvjqr
mbhpollxgeauywfikxtnscvjqr
mboposlggeaufwfikztndcvjqr
mbhposlxgeauywpikedndcvjqr
mbhpoklxgeauywpikztndcvjlr
mbhposhxgeauywfifztndcvpqr
mbhposlxgwagywfikztndcvjwr
mbhpokldgeauywfikztngcvjqr
nbhposlxgeauywfiketndcvjxr
mbhhoslxgexuywfikrtndcvjqr
mbhposlxgefujwfikztkdcvjqr
mbhposlxggagywfikztndchjqr
mbhposlxgeauyvfilztnicvjqr
mbhposlkgeauywfikzxndcvoqr
mbhposlxgeauvqfikztndcvuqr
zbhposlxgfauylfikztndcvjqr
mbhyoshxgeauywfikztndcvjqa
sbhposlxgeauyxfikztndavjqr
mlhposlxgeauywfikzmndcqjqr
mbhpaslxgekuywfikztnncvjqr
ibhhoslxteauywfikztndcvjqr
mbhposlxgeauyodibztndcvjqr
mbhposlxgkaoywfikztndcvpqr
mbhonslxgearywfikztndcvjqr
mbdpoolxgealywfikztndcvjqr
mbepfslxgvauywfikztndcvjqr
mbhposlygeauywfikztfdcvaqr
mthpoalxgeauywnikztndcvjqr
mbhpesbogeauywfikztndcvjqr
mbhposlxgjauywfikztnmcvjqj
mbhnoslxgeauydfikgtndcvjqr
mbhpxslxgeauywfikztndcvjcx
muhposlxgwauywfipztndcvjqr
mbhpcslxgeauywfiqztndcvjbr
mbhpomlxgeauywfioftndcvjqr
mbhposlfgepuywfikzmndcvjqr
mbhsosliteauywfikztndcvjqr
mbwposlxgeauywfikztnycveqr
mbhpfslxgeauywfqkztndcvjhr
mxhbvslxgeauywfikztndcvjqr
fbhposlxgeauywfikzcnmcvjqr
mbhfosfxgeauywfikztnduvjqr
tbhporlxgeauywfikztndcvjqm
mhhposlxgeauywfikctnecvjqr
mbhposlxgeqtywfikztnmcvjqr
qbhpjslxgeauywfikztndevjqr
tbhpxslxgeaunwfikztndcvjqr
wbhposlxgeadywfikztndcujqr
mbhposlvgeauywfpkotndcvjqr
mbhposlxgeagywfingtndcvjqr
mbnposlxgeauywfikztnvcjjqr
mohpoilxgeadywfikztndcvjqr
mbhposlsgeauywfikztnxcvgqr
mbhposlogeauywfikqtndcvjor
mbhroslxgeauypfikztndcvjqg
mblposuxgetuywfikztndcvjqr
mbhposlogeiuywfikztodcvjqr
mbhposlxgeauylfikztedcvrqr
mbhfoslxgeautwxikztndcvjqr
mbhouslxgeauywfikztnycvjqr
mbhposlxgeauywfvkqtndlvjqr
mbfposltgeauytfikztndcvjqr
mbhposlxgcapywfikztnddvjqr
hbhposlxgeasywfikztnxcvjqr
mbhposntgeauywfikztcdcvjqr
mbhponlxgfauywfirztndcvjqr
mbhposlxgeatywlikztndcvrqr
mohroslzgeauywfikztndcvjqr
mbhpojaxgeauywfifztndcvjqr
rbhposlxgwauywfikztndovjqr
mbhpoclxgeaeywfikztndcvjqo
mbhposllgeauywfikzondcvmqr
mbhpxslxgeauywfikzymdcvjqr
mbhposlxgeasywxikztndkvjqr
mbhposlxgeauywfivztndcmjqx
qbhposlxgpauywfikgtndcvjqr
mbhposlxgeauyqdikztqdcvjqr
cbhposlxgeauywfikttjdcvjqr
mbhgoslxgeanywfihztndcvjqr
mbhposlxgeajywfhkztndcvjvr
mbhpozlxgeauewfmkztndcvjqr
mbhposlxgeagywfbiztndcvjqr
mbhmoslxgeauywfikztndrnjqr
ybhposmxgeauywfikztndcviqr
mrwposlxgeauywfikztndpvjqr
mbhposlxneauywfikztndcbjqh
mbhpowlxheauywfikztndcojqr
mbeposlxgeauywfiwztnycvjqr
mbhposixgeapywfikztndcvvqr
mbhposlxgeauywfikztnbcvjap
mzhposixgenuywfikztndcvjqr
mbhposgxgeauywyikztndvvjqr
mbhposajgeauywfikztzdcvjqr
mbhyoslxgeauywfikzsndcvxqr
mbhposlxgdauywfikmtndcljqr