package kata import ( "fmt" "strings" ) func initCounts(listCat []string) map[string]int { cats := map[string]int{} for _, s := range listCat { cats[s[:1]] = 0 } return cats } func StockList(listArt []string, listCat []string) string { if len(listArt) == 0 || len(listCat) == 0 { return "" } cats := initCounts(listCat) var art string var count int for _, invent := range listArt { fmt.Sscanf(invent, "%s %d", &art, &count) _, ok := cats[art[:1]] if !ok { continue } cats[art[:1]] += count } slCounts := make([]string, len(cats)) for i, cat := range listCat { slCounts[i] = fmt.Sprintf("(%s : %d)", cat, cats[cat]) i++ } counts := strings.Join(slCounts, " - ") return counts }