add day-13 + benchmarks

This commit is contained in:
2024-12-13 12:11:56 +00:00
parent 540339b42d
commit fde954f97c
16 changed files with 376 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
package machine
import "fmt"
type Button struct {
X int
Y int
}
type Prize struct {
X int
Y int
}
type Machine struct {
A Button
B Button
Prize Prize
}
func New(btnA, btnB, prz []string) *Machine {
return &Machine{
A: Button{X: mustConv(btnA[2]), Y: mustConv(btnA[3])},
B: Button{X: mustConv(btnB[2]), Y: mustConv(btnB[3])},
Prize: Prize{X: mustConv(prz[1]), Y: mustConv(prz[2])},
}
}
func (m *Machine) String() string {
return fmt.Sprintf(
"ButtonA: (%d,%d) ButtonB: (%d,%d) Prize: (%d,%d)",
m.A.X,
m.A.Y,
m.B.X,
m.B.Y,
m.Prize.X,
m.Prize.Y,
)
}

View File

@@ -0,0 +1,11 @@
package machine
import "strconv"
func mustConv(s string) int {
n, err := strconv.Atoi(s)
if err != nil {
panic(err)
}
return n
}