From e5a1504f6b49975c2ff061b406868b3c0c5bc597 Mon Sep 17 00:00:00 2001 From: Kharec Date: Sun, 30 Nov 2025 12:46:09 +0100 Subject: [PATCH] feat: add solutions for P1/P2 2018D1 --- internal/2018/DayOne/code.go | 45 ++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 internal/2018/DayOne/code.go diff --git a/internal/2018/DayOne/code.go b/internal/2018/DayOne/code.go new file mode 100644 index 0000000..a50dc70 --- /dev/null +++ b/internal/2018/DayOne/code.go @@ -0,0 +1,45 @@ +package dayone + +import ( + "advent-of-code/internal/registry" + "os" + "strconv" + "strings" +) + +func init() { + registry.Register("2018D1", ParseInput, PartOne, PartTwo) +} + +func ParseInput(filepath string) []int { + content, _ := os.ReadFile(filepath) + var data []int + for line := range strings.SplitSeq(string(content), "\n") { + num, _ := strconv.Atoi(line) + data = append(data, num) + } + return data +} + +func PartOne(data []int) int { + sum := 0 + for _, num := range data { + sum += num + } + return sum +} + +func PartTwo(data []int) int { + seen := make(map[int]bool) + sum := 0 + seen[0] = true + for { + for _, num := range data { + sum += num + if seen[sum] { + return sum + } + seen[sum] = true + } + } +}