본문 바로가기
Coding Test/LeetCode

[LeetCode] 49. Group Anagrams [Python(파이썬)]

'파이썬 알고리즘 인터뷰'를 보고 작성한 글입니다. 😀
문제 👉 <Group Anagrams - LeetCode>

1. 문제 (그룹 에너그램)

문자열 배열을 받아 애너그램 단위로 그룹핑하라.
애너그램이란 문자를 재배열하여 다른 뜻을 가진 단어로 바구는 것 ('문전박대' -> '대박전문')

2. 풀이

  • 해시 를 이용한 풀이
  1. sorted()를 이용해 문자열 정렬
    1. 오름차순 sorted(arr)
    2. 내림차순 sorted(arr, reverse=True)
  2. defaultdict를 통해 애너그럼 그룹핑

3. 코드

  • 해시를 이용한 풀이
from collections import defaultdict

class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        dic = defaultdict(list)

        for s in strs:
              dic[''.join(sorted(s))].append(s)

        return dic.values()   
  • 결과 :
방식 Status Runtime Memory Language
해시 [Accepted] 92 ms 17.8 MB python3


References


🏋🏻 개인적으로 공부한 내용을 기록하고 있습니다.
잘못된 부분이 있다면 과감하게 지적해주세요!! 🏋

댓글