From 6ed18289c89eaff3557907df63cf58bd2009b3ee Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Tue, 7 Dec 2021 14:26:36 +0100 Subject: Added the first days --- 2021/05/second.go | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 2021/05/second.go (limited to '2021/05/second.go') diff --git a/2021/05/second.go b/2021/05/second.go new file mode 100644 index 0000000..c79025a --- /dev/null +++ b/2021/05/second.go @@ -0,0 +1,61 @@ +package main + +import ( + "bufio" + "fmt" + "os" + + "git.adyxax.org/aoc/2021/05/line" +) + +func main() { + matrix := make([][]int, 1000) + for i := 0; i < 1000; i++ { + matrix[i] = make([]int, 1000) + } + + parser := line.NewParser(bufio.NewReader(os.Stdin)) + for { + l, err := parser.Parse() + if err != nil { + break + } + if l.X1 == l.X2 { + if l.Y1 > l.Y2 { + l.Y1, l.Y2 = l.Y2, l.Y1 + } + for i := l.Y1; i <= l.Y2; i++ { + matrix[l.X1][i]++ + } + } else if l.Y1 == l.Y2 { + if l.X1 > l.X2 { + l.X1, l.X2 = l.X2, l.X1 + } + for i := l.X1; i <= l.X2; i++ { + matrix[i][l.Y1]++ + } + } else { + if l.X1 > l.X2 { + l.X1, l.X2, l.Y1, l.Y2 = l.X2, l.X1, l.Y2, l.Y1 + } + if l.Y1 < l.Y2 { + for i := 0; i <= l.X2-l.X1; i++ { + matrix[l.X1+i][l.Y1+i]++ + } + } else { + for i := 0; i <= l.X2-l.X1; i++ { + matrix[l.X1+i][l.Y1-i]++ + } + } + } + } + score := 0 + for i := 0; i < 1000; i++ { + for j := 0; j < 1000; j++ { + if matrix[i][j] >= 2 { + score++ + } + } + } + fmt.Println(score) +} -- cgit v1.2.3