✨ Day 1 Success
This commit is contained in:
parent
aee622018c
commit
9c2d4c65fa
100
day1/input.txt
Normal file
100
day1/input.txt
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
101005
|
||||||
|
139223
|
||||||
|
112833
|
||||||
|
70247
|
||||||
|
131775
|
||||||
|
106730
|
||||||
|
118388
|
||||||
|
138683
|
||||||
|
80439
|
||||||
|
71060
|
||||||
|
120862
|
||||||
|
67201
|
||||||
|
70617
|
||||||
|
79783
|
||||||
|
114813
|
||||||
|
77907
|
||||||
|
78814
|
||||||
|
107515
|
||||||
|
113507
|
||||||
|
81865
|
||||||
|
88130
|
||||||
|
75120
|
||||||
|
66588
|
||||||
|
56023
|
||||||
|
98080
|
||||||
|
128472
|
||||||
|
96031
|
||||||
|
118960
|
||||||
|
54069
|
||||||
|
112000
|
||||||
|
62979
|
||||||
|
105518
|
||||||
|
73342
|
||||||
|
52270
|
||||||
|
128841
|
||||||
|
68267
|
||||||
|
70789
|
||||||
|
94792
|
||||||
|
100738
|
||||||
|
102331
|
||||||
|
83082
|
||||||
|
77124
|
||||||
|
97360
|
||||||
|
86165
|
||||||
|
66120
|
||||||
|
139042
|
||||||
|
50390
|
||||||
|
105308
|
||||||
|
94607
|
||||||
|
58225
|
||||||
|
77894
|
||||||
|
118906
|
||||||
|
127277
|
||||||
|
101446
|
||||||
|
58897
|
||||||
|
93876
|
||||||
|
53312
|
||||||
|
117154
|
||||||
|
77448
|
||||||
|
62041
|
||||||
|
99069
|
||||||
|
87375
|
||||||
|
134854
|
||||||
|
108561
|
||||||
|
126406
|
||||||
|
53809
|
||||||
|
90760
|
||||||
|
121650
|
||||||
|
79573
|
||||||
|
134734
|
||||||
|
148021
|
||||||
|
84263
|
||||||
|
54390
|
||||||
|
132706
|
||||||
|
148794
|
||||||
|
67302
|
||||||
|
146885
|
||||||
|
76108
|
||||||
|
76270
|
||||||
|
54548
|
||||||
|
146920
|
||||||
|
145282
|
||||||
|
129509
|
||||||
|
144139
|
||||||
|
141713
|
||||||
|
62547
|
||||||
|
149898
|
||||||
|
96746
|
||||||
|
83583
|
||||||
|
107758
|
||||||
|
63912
|
||||||
|
142036
|
||||||
|
112281
|
||||||
|
91775
|
||||||
|
75809
|
||||||
|
82250
|
||||||
|
144667
|
||||||
|
140140
|
||||||
|
98276
|
||||||
|
103479
|
54
day1/main.go
Normal file
54
day1/main.go
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
"strconv"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
file, err := os.Open("input.txt")
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
completeFuel := 0
|
||||||
|
|
||||||
|
scanner := bufio.NewScanner(file)
|
||||||
|
for scanner.Scan() {
|
||||||
|
txt := scanner.Text()
|
||||||
|
convert, err := strconv.ParseFloat(txt, 64)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
completeFuel += CalcFuelRecusive(convert)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := scanner.Err(); err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Println(completeFuel)
|
||||||
|
}
|
||||||
|
|
||||||
|
func CalcFuelRecusive(mass float64) int {
|
||||||
|
sum := 0
|
||||||
|
for mass > 0 {
|
||||||
|
fuel := CalcRequiredFuel(mass)
|
||||||
|
|
||||||
|
if fuel > 0 {
|
||||||
|
sum += fuel
|
||||||
|
}
|
||||||
|
mass = float64(fuel)
|
||||||
|
}
|
||||||
|
return sum
|
||||||
|
}
|
||||||
|
|
||||||
|
func CalcRequiredFuel(mass float64) int {
|
||||||
|
fuel := mass / 3
|
||||||
|
return int(fuel) - 2
|
||||||
|
}
|
52
day1/main_test.go
Normal file
52
day1/main_test.go
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import "testing"
|
||||||
|
|
||||||
|
func TestCalcRequiredFuel1(t *testing.T) {
|
||||||
|
total := CalcRequiredFuel(12)
|
||||||
|
if total != 2 {
|
||||||
|
t.Errorf("CalcRequiredFuel was incorrect, got: %d, want: %d.", total, 2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCalcRequiredFuel2(t *testing.T) {
|
||||||
|
total := CalcRequiredFuel(14)
|
||||||
|
if total != 2 {
|
||||||
|
t.Errorf("CalcRequiredFuel was incorrect, got: %d, want: %d.", total, 2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCalcRequiredFuel3(t *testing.T) {
|
||||||
|
total := CalcRequiredFuel(1968)
|
||||||
|
if total != 654 {
|
||||||
|
t.Errorf("CalcRequiredFuel was incorrect, got: %d, want: %d.", total, 654)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCalcRequiredFuel4(t *testing.T) {
|
||||||
|
total := CalcRequiredFuel(100756)
|
||||||
|
if total != 33583 {
|
||||||
|
t.Errorf("CalcRequiredFuel was incorrect, got: %d, want: %d.", total, 33583)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCalcFuelRecusive1(t *testing.T) {
|
||||||
|
total := CalcFuelRecusive(14)
|
||||||
|
if total != 2 {
|
||||||
|
t.Errorf("CalcRequiredFuel was incorrect, got: %d, want: %d.", total, 2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCalcFuelRecusive2(t *testing.T) {
|
||||||
|
total := CalcFuelRecusive(100756)
|
||||||
|
if total != 50346 {
|
||||||
|
t.Errorf("CalcRequiredFuel was incorrect, got: %d, want: %d.", total, 50346)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCalcFuelRecusive3(t *testing.T) {
|
||||||
|
total := CalcFuelRecusive(1969)
|
||||||
|
if total != 966 {
|
||||||
|
t.Errorf("CalcRequiredFuel was incorrect, got: %d, want: %d.", total, 966)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user