From f8d8916b60ee0073feaf39e60046d54be253ebb7 Mon Sep 17 00:00:00 2001 From: Kharec Date: Mon, 24 Nov 2025 21:24:48 +0100 Subject: [PATCH] feat: add main code --- 2021/day01/main.go | 51 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 2021/day01/main.go diff --git a/2021/day01/main.go b/2021/day01/main.go new file mode 100644 index 0000000..2562063 --- /dev/null +++ b/2021/day01/main.go @@ -0,0 +1,51 @@ +package main + +import ( + "fmt" + "log" + "os" + "strconv" + "strings" +) + +func parseInput(file string) []int { + content, err := os.ReadFile(file) + if err != nil { + log.Fatalf("Failed to read input file: %v", err) + } + var data []int + for line := range strings.SplitSeq(string(content), "\n") { + num, err := strconv.Atoi(line) + if err != nil { + log.Fatalf("Failed to convert string to int: %v", err) + } + data = append(data, num) + } + return data +} + +func PartOne(data []int) int { + count := 0 + for i := 1; i < len(data); i++ { + if data[i] > data[i-1] { + count++ + } + } + return count +} + +func PartTwo(data []int) int { + count := 0 + for i := 3; i < len(data); i++ { + if data[i] > data[i-3] { + count++ + } + } + return count +} + +func main() { + data := parseInput("input.txt") + fmt.Println("Part 1:", PartOne(data)) + fmt.Println("Part 2:", PartTwo(data)) +}