This commit is contained in:
Gregory 2022-02-08 21:38:18 +02:00
parent 81f11c52ef
commit 4285976d91
3 changed files with 50 additions and 0 deletions

View file

@ -40,3 +40,36 @@ func D2(input string) int64 {
return position.x * position.y return position.x * position.y
} }
func D2P2(input string) int {
directions := strings.Split(strings.TrimSpace(input), "\n")
x := 0
y := 0
aim := 0
for _, direction := range directions {
directionAndValue := strings.Split(strings.TrimSpace(direction), " ")
if len(directionAndValue) != 2 {
log.Fatal("line has wrong number of elements: ", direction)
}
value, err := strconv.Atoi(directionAndValue[1])
if err != nil {
log.Fatal(err)
}
switch directionAndValue[0] {
case "forward":
y += aim * value
x += value
case "down":
aim += value
case "up":
aim -= value
}
}
return x * y
}

View file

@ -18,3 +18,16 @@ forward 2`
assert.EqualValues(t, 150, D2(input)) assert.EqualValues(t, 150, D2(input))
} }
func TestD2P2(t *testing.T) {
input := `
forward 5
down 5
forward 8
up 3
down 8
forward 2`
assert.EqualValues(t, 900, D2P2(input))
}

View file

@ -9,6 +9,7 @@ import (
"github.com/fotonmoton/aoc2021/client" "github.com/fotonmoton/aoc2021/client"
"github.com/fotonmoton/aoc2021/d1" "github.com/fotonmoton/aoc2021/d1"
"github.com/fotonmoton/aoc2021/d2" "github.com/fotonmoton/aoc2021/d2"
"github.com/fotonmoton/aoc2021/d3"
) )
func main() { func main() {
@ -24,4 +25,7 @@ func main() {
fmt.Printf("day 1: %v\n", d1.D1(client.Day(1))) fmt.Printf("day 1: %v\n", d1.D1(client.Day(1)))
fmt.Printf("day 1 part 2: %v\n", d1.D1P2(client.Day(1))) fmt.Printf("day 1 part 2: %v\n", d1.D1P2(client.Day(1)))
fmt.Printf("day 2: %v\n", d2.D2(client.Day(2))) fmt.Printf("day 2: %v\n", d2.D2(client.Day(2)))
fmt.Printf("day 2 part 2: %v\n", d2.D2P2(client.Day(2)))
fmt.Printf("day 3: %v\n", d3.D3(client.Day(3)))
} }