package main
import (
"fmt"
"sort"
)
/*
Function: mergeSlices
Purpose: Combine three integer slices into a single slice.
*/
func mergeSlices(slcA, slcB, slcC []int) []int {
lstMerged := []int{}
lstMerged = append(lstMerged, slcA...)
lstMerged = append(lstMerged, slcB...)
lstMerged = append(lstMerged, slcC...)
return lstMerged
}
/*
Function: uniqueSorted
Purpose: Convert a slice into a sorted slice with unique elements.
Uses a map to remove duplicates, then sorts the result.
*/
func uniqueSorted(lst []int) []int {
seen := make(map[int]bool)
slcUnique := []int{}
for _, v := range lst {
if !seen[v] {
seen[v] = true
slcUnique = append(slcUnique, v)
}
}
sort.Ints(slcUnique)
return slcUnique
}
func main() {
// Input slices
slc1 := []int{5, 1, 14, 3, 8, 9, 1, 1, 7}
slc2 := []int{3, 5, 7, 2, 3}
slc3 := []int{2, 9, 8}
// Step 1: Merge all slices
lstMerged := mergeSlices(slc1, slc2, slc3)
// Step 2: Create sorted unique slice
lstResult := uniqueSorted(lstMerged)
// Step 3: Print result
fmt.Print("Sorted unique slice: ")
for _, x := range lstResult {
fmt.Print(x, " ")
}
}
/*
run:
Sorted unique slice: 1 2 3 5 7 8 9 14
*/