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 객체 사용
'알고리즘 > Problem Solving' 카테고리의 다른 글
백준 - 음계 (2920) (0) | 2021.10.26 |
---|---|
(*복습필요*) [LeetCode] Longest Palindromic Substring (0) | 2021.04.15 |
[LeetCode] Most Common Word (0) | 2021.04.12 |
[LeetCode] Reorder Log Files (0) | 2021.04.11 |
[LeetCode] Reverse String (0) | 2021.04.11 |
댓글