2022 day 25 complete

This commit is contained in:
Brian Buller 2022-12-27 14:27:31 -06:00
parent ad6382f8bc
commit 147602a52f
3 changed files with 187 additions and 0 deletions

124
2022/day25/input Normal file
View File

@ -0,0 +1,124 @@
21-0==1=-0
102211-220011-----
1=2=111=10=-
12-2=022=2
1=--=11
12-2211000=0011-0-
1=1-
2=0-10-=21-2
1210-
2=1-=
1=0=12=2112--11=
2--211=200
20-02-20
12=12=0=0=1
22===21=-0102-012=
1--=-121
1=02=2-=
12-0-20
2=---=0102--00=22
1=2==0=2=
11-1112
2--012
12=12=--212-0-==-02
1=220
20===1
2210-02=12-022-=1-
22--1-==1
211-1=1=0-==1
10
1-1-02
1=-2==-0=21
1=102
20121021
1=2=22=001200-==1020
10211-1-20--10-1=
1222==1--=1--11-=
11211211
1=101-20=
1=1-11=0=000
1=-=101
2
1000-2
1==0=210=1=21222-=2
1=1==2-
2--020=2=2===-
2-
2=0
222101=22=-21=11
2=
121201-0-20-2-=11=
10=
1212=20=2=-=-1--1
2-20-=212=01
1=1--00--0=12=-00
22--
22
22===1=-0-22-
111-=
2-111=0021=2
200=22-=12-2=
1==-=1=0
1--=02-0002=
1=-=2-2=2-
2=2222220=2==001
1=00==11=-20-=2-2
1---0=-=
1-0==10-=22001
1=02=02-1=0111
1-=010-21-=21==02
10200-2=-=20120-2
1=-
10=122-
210-1=-=2011-0--1
2==-1=20
1=-=101-20=221-1
210
1-=-==-0-=02=---
1-=1=-=12=0
1-=0---12-0=
210-==1021=010=1
1=-212
11=1=-=2211=101222-
2=-==--=2
1=11-200--=
1120-
11=-0=221=0101=
11-1=-
1-12-2=0
1012-22=1-
20-122=-1=
1-100=0=101-0
20-1=1=0
1102=
21
10=20=11
1-=2001
1-20=12-0221102-==
1-1--010100=-1=
221002==2102-2=1
2012=121-22
110222002=01
212102-1=1=-211
210-=12
1=-1-0101=1-12
12--21=1
10=-12
100-122211=--2=
101102001
11011=-
211-0=-=0
1-2=01-1=
1-022-=00000
2==-0==2=--00=
10=--2000==
1---=--1-110-02
11-012
2==-2210-0
212
22-=-12111
2--=
2=2=12-100
10-12===0-
1==0=0=22012201
211-1--22

50
2022/day25/main.go Normal file
View File

@ -0,0 +1,50 @@
package main
import (
"fmt"
"math"
h "git.bullercodeworks.com/brian/adventofcode/helpers"
)
func main() {
inp := h.StdinToStringSlice()
part1(inp)
}
func part1(inp []string) {
var v int
for i := range inp {
v = v + SNAFUToDec(inp[i])
}
fmt.Println("# Part 1")
fmt.Println(DecToSNAFU(v))
}
func SNAFUToDec(inp string) int {
var res int
var place float64
for i := len(inp) - 1; i >= 0; i-- {
var v int
if inp[i] == '-' {
v = -1
} else if inp[i] == '=' {
v = -2
} else {
v = int(inp[i] - '0')
}
v = v * int(math.Pow(5, place))
place++
res = res + v
}
return res
}
func DecToSNAFU(v int) string {
var res string
for v > 0 {
res = string("=-012"[(v+2)%5]) + res
v = (v + 2) / 5
}
return res
}

13
2022/day25/testinput Normal file
View File

@ -0,0 +1,13 @@
1=-0-2
12111
2=0=
21
2=01
111
20012
112
1=-1=
1-12
12
1=
122