'파이썬 알고리즘 인터뷰'를 보고 작성한 글입니다. 😀
문제 👉 <Group Anagrams - LeetCode>
1. 문제 (그룹 에너그램)
문자열 배열을 받아 애너그램 단위로 그룹핑하라.
애너그램이란 문자를 재배열하여 다른 뜻을 가진 단어로 바구는 것 ('문전박대' -> '대박전문')
2. 풀이
해시
를 이용한 풀이
sorted()
를 이용해 문자열 정렬- 오름차순
sorted(arr)
- 내림차순
sorted(arr, reverse=True)
- 오름차순
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
🏋🏻 개인적으로 공부한 내용을 기록하고 있습니다.
잘못된 부분이 있다면 과감하게 지적해주세요!! 🏋
'Coding Test > LeetCode' 카테고리의 다른 글
[LeetCode] 121. Best Time to Buy and Sell Stock [Python(파이썬)] (0) | 2021.11.23 |
---|---|
[LeetCode] 42. Trapping Rain Water [Python(파이썬)] (0) | 2021.11.23 |
[LeetCode] 15. 3Sum [Python(파이썬)] (0) | 2021.11.23 |
댓글