리트코드 Group Anagrams
from typing import List
import collections
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
anagrams = collections.defaultdict(list)
for word in strs:
anagrams[''.join(sorted(word))].append(word)
print(anagrams)
return anagrams.values()
if __name__ == '__main__':
s = Solution()
print(s.groupAnagrams(["eat","tea","tan","ate","nat","bat"]))
sorted()는 문자열도 잘 정렬하며 결과를 리스트 형태로 리턴하는데, 이를 다시 키로 사용하기 위해 join()으로 합쳐 이 값을 키로 하는 딕셔너리로 구성한다.
''.join(list())는 리스트를 문자열로 바꿔준다.
출처
파이썬 알고리즘 인터뷰 (글 : 박상길 그림 : 정진호) [책만]