[LeetCode] 49. Group Anagrams

원숭2·2022년 2월 6일
0

LeetCode

목록 보기
33/51
post-thumbnail

문제

풀이

  1. 애너그램은 단어의 구성이 전부 똑같은 점을 이용함.
  2. 결과값을 저장할 dictionary를 선언 후, strs 배열을 돌면서 배열의 각 요소를 list로 변환 및 sort함수를 이용해 정렬해주고, 이를 다시 join함수를 통해 문자열로 바꿔줌.
  3. 바꿔준 결과값이 기존에 존재하면 dictionary에 집어넣는데, 여러개의 값을 한번에 집어넣기 위해 dictionary의 value를 list로 선언하여 추가함.
  4. value 값만 필요하므로 values함수를 사용하여 return함.

코드

class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        if strs == [""] :
            return [[""]]
        else :
            res = dict()
            for s in strs :
                tmp = ''.join(sorted(list(s)))
                if tmp not in res.keys() :
                    res[tmp] = [s]
                else :
                    t = res[tmp]
                    t.append(s)
                    res[tmp] = t
            return sorted(list(res.values()))

0개의 댓글