그룹 애너그램

seongolee·2022년 2월 8일
0

Python

목록 보기
1/1

애너그램이란

일종의 언어유희로 문자를 재배열하여 다른 뜻을 가진 단어로 바꾸는 것을 말한다

입력

['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가 발생하지 않는다.

박상길[파이썬 알고리즘] 책으로 공부하며 작성한 내용입니다

profile
천천히 깊이 있게 개발하려고 노력하는 벨로그입니다.

0개의 댓글