add aoc 2025 day 1 solution
This commit is contained in:
parent
32d8142420
commit
2910d6313c
3 changed files with 89 additions and 0 deletions
8
2025/1/README.md
Normal file
8
2025/1/README.md
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
# aoc 2025 day 1
|
||||||
|
|
||||||
|
run with:
|
||||||
|
```sh
|
||||||
|
go run main.go
|
||||||
|
```
|
||||||
|
|
||||||
|
you will need to put your input into input.txt first though. example is put in input.txt currently
|
||||||
10
2025/1/input.txt
Normal file
10
2025/1/input.txt
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
L68
|
||||||
|
L30
|
||||||
|
R48
|
||||||
|
L5
|
||||||
|
R60
|
||||||
|
L55
|
||||||
|
L1
|
||||||
|
L99
|
||||||
|
R14
|
||||||
|
L82
|
||||||
71
2025/1/main.go
Normal file
71
2025/1/main.go
Normal file
|
|
@ -0,0 +1,71 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
rotations := Decode("input.txt")
|
||||||
|
|
||||||
|
rotation := 50
|
||||||
|
zeroamount := 0
|
||||||
|
|
||||||
|
for _, i := range rotations {
|
||||||
|
b := i % 100 // for large number rotations eg. L392 -> L92
|
||||||
|
|
||||||
|
r := rotation + b
|
||||||
|
if r > 99 {
|
||||||
|
r = r - 100
|
||||||
|
} else if r < 0 {
|
||||||
|
r = r + 100
|
||||||
|
}
|
||||||
|
|
||||||
|
if r == 0 {
|
||||||
|
zeroamount = zeroamount + 1
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Printf("rotation is now at: %d+%d=%d, rotation %d\n", rotation, b, r, i)
|
||||||
|
rotation = r
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println("zero amount is:", zeroamount)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func Decode(filename string) []int {
|
||||||
|
f, err := os.Open(filename)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
defer f.Close()
|
||||||
|
|
||||||
|
scanner := bufio.NewScanner(f)
|
||||||
|
|
||||||
|
var rotations []int
|
||||||
|
|
||||||
|
for scanner.Scan() {
|
||||||
|
if strings.Contains(scanner.Text(), "L") {
|
||||||
|
a := strings.Replace(scanner.Text(), "L", "", 1)
|
||||||
|
|
||||||
|
b, _ := strconv.Atoi(a)
|
||||||
|
c := b-b*2 // makes negative, this is so janky
|
||||||
|
rotations = append(rotations, c)
|
||||||
|
fmt.Printf("converted %s to int %d\n", scanner.Text(), c)
|
||||||
|
|
||||||
|
} else if strings.Contains(scanner.Text(), "R") {
|
||||||
|
a := strings.Replace(scanner.Text(), "R", "", 1)
|
||||||
|
|
||||||
|
b, _ := strconv.Atoi(a)
|
||||||
|
rotations = append(rotations, b)
|
||||||
|
fmt.Printf("converted %s to int %d\n", scanner.Text(), b)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return rotations
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue