input list 로 부터 같은 문자로만 구성된 단어들을 묶어서 리턴
aet eat tae 모두 aet 를 가지고 있다.
세 단어 모두 만약 오름차순이나 내림차순으로 정렬한다면 같은 단어가 된다.
즉 정렬해서 같은 단어이면 묶는다.
정렬해서 같은 단어이면 list 에 넣는다.
values() 로 list 를 리턴한다.
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
anagrams = defaultdict(list)
for word in strs:
anagrams[''.join(sorted(word))].append(word)
# append => javascript push
# anagrams = {'aet': ['eat', 'tea', 'ate'], 'ant': ['tan', 'nat'], 'abt': ['bat']}
return anagrams.values()