알고리즘/Problem Solving
[LeetCode] Group Anagrams
도툐리
2021. 4. 12. 23:55
leetcode.com/problems/group-anagrams/
Group Anagrams - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
(0) 맨 처음에 내가 작성했던 코드
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
# collections.Counter 이용해야할듯
# [1] key로 원래 string의 Counter객체 튜플을, value로 원래 string을 가지고 있는 dict를 만들자!
my_dict = {}
for string in strs:
my_list = [v for v in string]
my_list.sort()
my_counter = collections.Counter(my_list).most_common()
my_key = tuple(my_counter)
# [1] - 1. 해당 key가 없는 상태라면 새로 만들기.
if my_key not in my_dict:
my_dict[my_key] = []
# [1] - 2. 해당 key가 이미 있다면 그냥 그대로 append
my_dict[my_key].append(string)
my_arr = []
# [2] dict 안에서 value가 똑같은 애들끼리 묶어주자!
for i,v in my_dict.items():
my_arr.append(v)
return my_arr
(1) <파이썬 알고리즘 인터뷰> : 리스트 컴프리헨션, Counter 객체 사용