Files
adventofcode/2025/gareth/day01/day01.go
Gareth 015607cde3 Day01
2025-12-01 18:11:11 +00:00

65 lines
923 B
Go

package day01
import (
"strconv"
"strings"
)
func Part1(input string) int {
lines := strings.Split(input, "\n")
position := 50
output := 0
for _, line := range lines {
direction := line[0]
amount, _ := strconv.Atoi(line[1:])
if direction == 'R' {
position += amount
for position > 99 {
position -= 100
}
} else if direction == 'L' {
position -= amount
for position < 0 {
position += 100
}
}
if position == 0 {
output++
}
}
return output
}
func Part2(input string) int {
lines := strings.Split(input, "\n")
position := 50
output := 0
for _, line := range lines {
direction := line[0]
amount, _ := strconv.Atoi(line[1:])
step := 1
if direction == 'L' {
step = -1
}
for i := 0; i < amount; i++ {
position = (position + step) % 100
if position < 0 {
position += 100
}
if position == 0 {
output++
}
}
}
return output
}