[Leetcode] 49. Group Anagrams

천호영·2023년 10월 25일
0

LeetCodeTop100

목록 보기
2/17

문제

https://leetcode.com/problems/group-anagrams/description/?envType=study-plan-v2&envId=top-100-liked

풀이

순서를 바꿨을 때 모두 동일하다는 것을 체크하기 위해 정렬을 이용했다.
또한, dictionary의 key로 이용할 때, hashable하게 하기 위해 list를 tuple로 변환했는데 discussion을 보니 ''.join()을 통해 문자열로도 변환이 가능했다.

from collections import defaultdict

class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        anagram_dict = defaultdict(list)
        for _str in strs:
            anagram_dict[tuple(sorted(_str))].append(_str)
        return list(anagram_dict.values())

이번 문제도 해시테이블을 이용하여 빠르게 연산을 가능하게 하는 것이 핵심이었다.

profile
성장!

0개의 댓글