package main import ( "bufio" "fmt" "os" "aoc2022/day03/common" ) func main() { rucksacks := common.Parse(*bufio.NewScanner(os.Stdin)) sum := 0 for i := 0; i < len(rucksacks); i+=3 { rucksack := rucksacks[i] commonItems := append(rucksack.GetCompartment(1).GetItems(), rucksack.GetCompartment(2).GetItems()...) for j := 1; j <= 2; j++ { for k := 0; k < len(commonItems); k++ { item := commonItems[k] if !rucksacks[i+j].GetCompartment(1).ContainsItem(item) && !rucksacks[i+j].GetCompartment(2).ContainsItem(item) { commonItems = append(commonItems[:k], commonItems[k+1:]...) k-- } } } sum += commonItems[0] } fmt.Println(sum) }