From 681b7bae165389b1922108dd02a44a962e4ada6c Mon Sep 17 00:00:00 2001 From: Kharec Date: Sat, 20 Dec 2025 09:15:52 +0100 Subject: [PATCH] feat: solve part one --- internal/2018/DayFive/code.go | 41 +++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 internal/2018/DayFive/code.go diff --git a/internal/2018/DayFive/code.go b/internal/2018/DayFive/code.go new file mode 100644 index 0000000..aac130c --- /dev/null +++ b/internal/2018/DayFive/code.go @@ -0,0 +1,41 @@ +package dayfive + +import ( + "advent-of-code/internal/registry" + "os" + "unicode" +) + +func init() { + registry.Register("2018D5", ParseInput, PartOne, PartTwo) +} + +func ParseInput(filepath string) string { + content, _ := os.ReadFile(filepath) + return string(content) +} + +func PartOne(data string) int { + stack := []rune{} + + for _, char := range data { + if len(stack) == 0 { + stack = append(stack, char) + continue + } + + top := stack[len(stack)-1] + + if unicode.ToLower(top) == unicode.ToLower(char) && top != char { + stack = stack[:len(stack)-1] + } else { + stack = append(stack, char) + } + } + + return len(stack) +} + +func PartTwo(data string) int { + return 0 +}