https://leetcode.com/problems/group-anagrams/description/?envType=study-plan-v2&envId=top-100-liked
순서를 바꿨을 때 모두 동일하다는 것을 체크하기 위해 정렬을 이용했다.
또한, dictionary의 key로 이용할 때, hashable하게 하기 위해 list를 tuple로 변환했는데 discussion을 보니 ''.join()을 통해 문자열로도 변환이 가능했다.
from collections import defaultdict
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
anagram_dict = defaultdict(list)
for _str in strs:
anagram_dict[tuple(sorted(_str))].append(_str)
return list(anagram_dict.values())
이번 문제도 해시테이블을 이용하여 빠르게 연산을 가능하게 하는 것이 핵심이었다.