문제 출처 : leetcode.com/problems/group-anagrams/
문제 해석 : 문자열 배열을 입력으로 받고 애너그램 단위로 이를 묶어서 반환하는 문제이다.
문제 풀이 : sort를 함으로 갯수와 문자구성이 동일한지 알 수 있다. 이를 딕셔너리로 정리하여 한 배열에 담아서 반환하면 된다.
풀이 코드
from typing import List
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
answer = []
Anagrams_dic = {}
for element in strs:
temp = "".join(sorted(list(element)))
if temp in Anagrams_dic.keys():
Anagrams_dic[temp].append(element)
else:
Anagrams_dic[temp] = [element]
for key in Anagrams_dic.keys():
answer.append(Anagrams_dic[key])
return answer
if __name__=="__main__":
solution = Solution()
strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
print(solution.groupAnagrams(strs))
author : donghak park
contact : donghark03@naver.com
## 문제의 저작권은 LeetCode 사이트에 있습니다. 혹시 문제가 되는 부분이 있으면 연락 바랍니다.
'📊알고리즘, 문제풀이 > 📈문제풀이 (PS)' 카테고리의 다른 글
[알고리즘][Python] LeetCode 1 Two Sum 문제 풀이 (0) | 2021.02.17 |
---|---|
[알고리즘][Python] LeetCode 5 Longest Palindromic Substring 문제 풀이 (0) | 2021.02.16 |
[알고리즘][Python] LeetCode 819 Most Common Word 문제 풀이 (0) | 2021.02.16 |
[알고리즘][Python] LeetCode 937 Reorder Data in Log Files 문제 풀이 (0) | 2021.02.15 |
[알고리즘][Python] LeetCode 344 Reverse String 문제 풀이 (0) | 2021.02.15 |