알고리즘 - 그룹 애너그램
문자열 배열을 받아 애너그램 단위로 그풉핑하라.
*애너그램: 문자를 재배열하여 다른 뜻을 가진 언어로 바꾸는 것
Input | Output |
---|---|
[“eat”,”tea”,”tan”,”ate”,”nat”,”bat”] | [[“bat”],[“nat”,”tan”],[“ate”,”eat”,”tea”]] |
[””] | [[””]] |
[“a”] | [[“a”]] |
Solution(정렬하여 딕셔너리에 추가)
def groupAnagrams(strs: List[str]) -> List[List[str]]:
anagrams = collections.defaultdict(list)
for word in strs:
anagrams[''.join(sorted(word))].append(word)
return list(anagrams.values())
단어들을 정렬하면 같은 값을 가지게 되므로 정렬된 단어를 키로 하여 리스트 값을 가지는 딕셔너리를 만든다. 그리고 딕셔너리의 값들을 리스트로 반환한다.
댓글남기기