Bootstrap and day 1 solution

This commit is contained in:
2022-06-06 15:14:31 -05:00
commit 662d76eb7c
13 changed files with 373 additions and 0 deletions

47
days/01.go Normal file
View File

@ -0,0 +1,47 @@
package days
import (
"fmt"
"math"
"time"
"parnic.com/aoc2019/utilities"
)
type Day01 struct {
nums []int64
}
func (d *Day01) Parse() {
d.nums = utilities.GetIntLines("01p")
time.Sleep(time.Microsecond * 500)
}
func (d *Day01) calcFuel(mass int64) int64 {
return int64(math.Floor(float64(mass)/3)) - 2
}
func (d *Day01) Part1() string {
var totalFuel int64
for _, mass := range d.nums {
fuel := d.calcFuel(mass)
totalFuel += fuel
}
return fmt.Sprintf("Fuel required: %s%d%s", utilities.TextBold, totalFuel, utilities.TextReset)
}
func (d *Day01) Part2() string {
var totalFuel int64
for _, mass := range d.nums {
for mass > 0 {
fuel := d.calcFuel(mass)
if fuel > 0 {
totalFuel += fuel
}
mass = fuel
}
}
return fmt.Sprintf("Fuel required: %s%d%s", utilities.TextBold, totalFuel, utilities.TextReset)
}