일종의 언어유희로 문자를 재배열하여 다른 뜻을 가진 단어로 바꾸는 것을 말한다
입력
['eat', 'tea', 'tan', 'ate', 'nat', 'bat']
출력
[ ['ate', 'eat', 'tea'], ['nat', 'tan'], ['bat'] ]
애너그램을 판단하는 가장 간단한 방법은 정렬하여 비교하는 것,
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()) group_list = ['eat', 'tea', 'tan', 'ate', 'nat', 'bat']
주의 할 점은 anagrams를 collections.defaultdict(list)로 선언해주어야 KeyError가 발생하지 않는다.
박상길[파이썬 알고리즘] 책으로 공부하며 작성한 내용입니다