diff options
| author | omagdy <omar.professional8777@gmail.com> | 2024-12-09 20:09:16 +0200 |
|---|---|---|
| committer | omagdy <omar.professional8777@gmail.com> | 2024-12-09 20:09:16 +0200 |
| commit | 9efb5b409fa624c40aaca777a41ff3fddf0da3f5 (patch) | |
| tree | 0532522a8a99d206f3d5e09b794d80256d8abd97 /2024/go/src/day8 | |
| parent | 01c6b2cb42a4144a573ec43e9e25c6718741a272 (diff) | |
| download | aoc-9efb5b409fa624c40aaca777a41ff3fddf0da3f5.tar.xz aoc-9efb5b409fa624c40aaca777a41ff3fddf0da3f5.zip | |
Horrible solution for day9 but it works I guess.
Diffstat (limited to '2024/go/src/day8')
| -rw-r--r-- | 2024/go/src/day8/main.go | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/2024/go/src/day8/main.go b/2024/go/src/day8/main.go index ab5901d..e801340 100644 --- a/2024/go/src/day8/main.go +++ b/2024/go/src/day8/main.go @@ -49,21 +49,17 @@ type Points = [][2]int func getPosMap(grid *Grid) map[rune]Points { n, m := len(*grid), len((*grid)[0]) - posMap := make(map[rune]Points) + antinodes := make(map[rune]Points) for i := 0; i < n; i++ { for j := 0; j < m; j++ { curPos := Point{i, j} curRune := (*grid)[i][j] if curRune != '.' { - if _, exists := posMap[curRune]; exists { - posMap[curRune] = append(posMap[curRune], curPos) - } else { - posMap[curRune] = [][2]int{curPos} - } + antinodes[curRune] = append(antinodes[curRune], curPos) } } } - return posMap + return antinodes } func isValidAntenna(grid *Grid, i, j int) bool { @@ -76,9 +72,9 @@ func isValidAntenna(grid *Grid, i, j int) bool { func solve_part_one(data string) int { grid := parseInput(data) - posMap := getPosMap(&grid) - set := make(map[Point]struct{}) - for _, val := range posMap { + antennas := getPosMap(&grid) + antinodes := make(map[Point]struct{}) + for _, val := range antennas { for i := 0; i < len(val); i++ { curPosI := val[i] for j := i + 1; j < len(val); j++ { @@ -88,22 +84,22 @@ func solve_part_one(data string) int { firstAntennaPos := [2]int{curPosI[0] + diffOne[0], curPosI[1] + diffOne[1]} secondAntennaPos := [2]int{curPosJ[0] + diffTwo[0], curPosJ[1] + diffTwo[1]} if isValidAntenna(&grid, firstAntennaPos[0], firstAntennaPos[1]) { - set[firstAntennaPos] = struct{}{} + antinodes[firstAntennaPos] = struct{}{} } if isValidAntenna(&grid, secondAntennaPos[0], secondAntennaPos[1]) { - set[secondAntennaPos] = struct{}{} + antinodes[secondAntennaPos] = struct{}{} } } } } - return len(set) + return len(antinodes) } func solve_part_two(data string) int { grid := parseInput(data) - posMap := getPosMap(&grid) + antennas := getPosMap(&grid) cnt := 0 - for _, val := range posMap { + for _, val := range antennas { for i := 0; i < len(val); i++ { curPosI := val[i] for j := i + 1; j < len(val); j++ { |
