def groupAnagrams(self, strs: list[str]) -> list[list[str]]:
anagrams = collections.defaultdict(list)
for word in strs:
anagrams[''.join(sorted(word))].append(word)
return list(anagrams.values())
기억해야할 기법
frozenset을 dict의 key로 사용시 주의
문자의 개수를 생략하기 때문에, 사용된 알파벳이 같으면 같은 단어 취급
내가 구현한 코드
from collections import defaultdict
def group_anagrams(words: list[str]) -> list[list[str]]:
dict_anagrams = defaultdict(list)
for word in words:
dict_anagrams[frozenset(list(word))].append(word)
return list(dict_anagrams.values())