From 9cf00b290faedcb1b6d089da070cf33762f937ff Mon Sep 17 00:00:00 2001 From: Kharec Date: Mon, 8 Dec 2025 22:17:11 +0100 Subject: [PATCH] feat: solve part two using same logic and injecting me :) --- internal/2015/DayThirteen/code.go | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/internal/2015/DayThirteen/code.go b/internal/2015/DayThirteen/code.go index 84ded38..f48e416 100644 --- a/internal/2015/DayThirteen/code.go +++ b/internal/2015/DayThirteen/code.go @@ -110,5 +110,32 @@ func PartOne(data []string) int { } func PartTwo(data []string) int { - return 0 + happinessMap := buildHappinessMap(data) + allPeople := getAllPeople(happinessMap) + + me := "Me" + happinessMap[me] = make(map[string]int) + for _, person := range allPeople { + happinessMap[person][me] = 0 + happinessMap[me][person] = 0 + } + + allPeople = append(allPeople, me) + fixedPerson := allPeople[0] + remainingPeople := allPeople[1:] + permutations := generatePermutations(remainingPeople) + + maxTotalChange := math.MinInt + arrangement := make([]string, len(allPeople)) + arrangement[0] = fixedPerson + + for _, permutation := range permutations { + copy(arrangement[1:], permutation) + totalHappiness := calculateTotalHappiness(arrangement, happinessMap) + if totalHappiness > maxTotalChange { + maxTotalChange = totalHappiness + } + } + + return maxTotalChange }