2025: 01
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
**.txt
|
||||||
75
2025/01/main.go
Normal file
75
2025/01/main.go
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"regexp"
|
||||||
|
"strconv"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
sum := 50
|
||||||
|
res1 := 0
|
||||||
|
res2 := 0
|
||||||
|
|
||||||
|
file, err := os.Open("./input.txt")
|
||||||
|
//file, err := os.Open("./test.txt")
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
re := regexp.MustCompile("(L|R)(\\w+)")
|
||||||
|
|
||||||
|
scanner := bufio.NewScanner(file)
|
||||||
|
|
||||||
|
for scanner.Scan() {
|
||||||
|
// Since re : "(L|R)(\w+)", we can parse it as the following i
|
||||||
|
i := 0
|
||||||
|
{
|
||||||
|
m := re.FindStringSubmatch(scanner.Text())
|
||||||
|
|
||||||
|
i, _ = strconv.Atoi(m[2])
|
||||||
|
|
||||||
|
if m[1] == "L" {
|
||||||
|
i *= -1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle sum +=i as mod(100) and work w/res2
|
||||||
|
{
|
||||||
|
// Avoid counting rebundant match
|
||||||
|
if sum == 0 && i < 0 {
|
||||||
|
res2 -= 1
|
||||||
|
}
|
||||||
|
|
||||||
|
sum += i
|
||||||
|
|
||||||
|
for sum < 0 {
|
||||||
|
sum += 100
|
||||||
|
res2 += 1
|
||||||
|
}
|
||||||
|
for sum > 100 {
|
||||||
|
sum -= 100
|
||||||
|
res2 += 1
|
||||||
|
}
|
||||||
|
if sum == 100 {
|
||||||
|
sum -= 100
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// work w/res1
|
||||||
|
if sum == 0 {
|
||||||
|
res1 += 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := scanner.Err(); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println(res1, res1+res2)
|
||||||
|
}
|
||||||
10
2025/01/test.txt
Normal file
10
2025/01/test.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
L68
|
||||||
|
L30
|
||||||
|
R48
|
||||||
|
L5
|
||||||
|
R60
|
||||||
|
L55
|
||||||
|
L1
|
||||||
|
L99
|
||||||
|
R14
|
||||||
|
L82
|
||||||
7
2025/Makefile
Normal file
7
2025/Makefile
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
INPUT = \
|
||||||
|
01/input.txt
|
||||||
|
|
||||||
|
.SUFFIXES: .txt
|
||||||
|
|
||||||
|
$(INPUT):
|
||||||
|
curl "https://adventofcode.com/2025/day/`echo $@|sed -r 's,^0*(\w+/input).txt$$,\1,'`" -H 'Cookie: session=$(SESSION)' > $@
|
||||||
Reference in New Issue
Block a user