Go - Easy to understand O(n**2) Approach✅
Complexity\n- Time complexity: O(n^2*m)\n Add your time complexity here, e.g. O(n) \n\n# Code\n\nfunc findAllConcatenatedWordsInADict(words []string) []string {
# Complexity\n- Time complexity: O(n^2*m)\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```\nfunc findAllConcatenatedWordsInADict(words []string) []string {\n    s := make(map[string]bool)\n    concatenateWords := []string{}\n    for _, word := range words {\n        s[word] = true\n    }\n    for _, word := range words {\n        if checkConcatenate(word, s) {\n            concatenateWords = append(concatenateWords, word)\n        }\n    }\n    return concatenateWords\n}\n\nfunc checkConcatenate(word string, s map[string]bool) bool {\n    for i := 1; i < len(word); i++ {\n        prefixWord := word[:i]\n        suffixWord := word[i:]\n        if s[prefixWord] && (s[suffixWord] || checkConcatenate(suffixWord, s)) {\n            return true\n        }\n    }\n    return false\n}\n```
['Go']