123456789101112131415161718192021222324252627282930313233343536373839404142 |
- 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
- }
|