[파이썬알고리즘 인터뷰] 그룹 애너그램

2020. 12. 25. 19:44노트/Algorithm : 알고리즘

문자열 배열을 받아 애너그램 단위로 그룹핑하라. 

* 입력: 
["eat", "tea", "tan", "ate", "nat" , "bat"]

* 출력" 
[
    ["ate","eat","tea"],
    ["nat","tan"],
    ["bat"]
]

 

input_ = ["eat", "tea", "tan", "ate", "nat" , "bat"]

import collections 

def anagram(strs):
    anagrams = collections.defaultdict(list)
    
    for word in strs:
        # 정렬하여 딕셔너리에 추가 
        anagrams["".join(sorted(word))].append(word)
    return anagrams.values()
    
anagram(input_)
>>> dict_values([['eat', 'tea', 'ate'], ['tan', 'nat'], ['bat']])