From d13ed719e164187b87c21ec0861566e85f16136e Mon Sep 17 00:00:00 2001 From: Kharec Date: Tue, 25 Nov 2025 22:28:25 +0100 Subject: [PATCH] feat: complete PartTwo --- 2020/day05/main.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/2020/day05/main.go b/2020/day05/main.go index 0da265e..5522ed3 100644 --- a/2020/day05/main.go +++ b/2020/day05/main.go @@ -50,7 +50,36 @@ func PartOne(input []string) int { return maxSeatID } +func PartTwo(input []string) int { + seatIDs := make(map[int]bool) + minSeatID := 1000 + maxSeatID := 0 + + for _, pass := range input { + if len(pass) < 10 { + continue + } + seatID := calculateSeatID(pass) + seatIDs[seatID] = true + if seatID < minSeatID { + minSeatID = seatID + } + if seatID > maxSeatID { + maxSeatID = seatID + } + } + + for seatID := minSeatID + 1; seatID < maxSeatID; seatID++ { + if !seatIDs[seatID] && seatIDs[seatID-1] && seatIDs[seatID+1] { + return seatID + } + } + + return 0 +} + func main() { input := parseInput("input.txt") fmt.Println("Part 1:", PartOne(input)) + fmt.Println("Part 2:", PartTwo(input)) }