Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- Elasticsearch
- dlfks
- 오버로딩
- git
- 오버라이딩
- 형상관리
- 버전관리
- java
- elastic certified engineer
- 상속
- overriding
- Overloading
Archives
- Today
- Total
엔지니어 블로그
[Leetcode] 49. Group Anagrams 본문
풀이
배열 내의 단어들이 Anagrams인 것들 끼리 묶어서 2차원 배열을 리턴하면 되는 문제다.
for문을 이용해서 각각의 요소를 정렬한 후 dict 내에 sorted_str : [str1,str2] 와 같은 형태로 저장하고 value 값들을 list에 담아 리턴하는 형식으로 문제를 풀었다.
코드
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
dict = {}
ans = []
for str in strs:
sort_str = "".join(sorted(str))
if sort_str in dict.keys():
dict[sort_str].append(str)
else:
dict[sort_str] = [str]
for arr in dict.values():
ans.append(arr)
return ans
처음 작성한 코드는 이런데 수정할 부분이 보여서 추후에 수정을 했다.
1.value가 list로 초기화 된 dict 생성
2.if문 제거
from collections import defaultdict
dict = defaultdict(list)
for str in strs:
sort_str = "".join(sorted(str))
dict[sort_str].append(str)
return list(dict.values())
둘 다 정답과 풀이 과정을 동일하지만 훨씬 간결한 코드가 되었다.
'알고리즘' 카테고리의 다른 글
[Leetcode] 20. Valid Parentheses (0) | 2025.02.20 |
---|---|
[Leetcode] 392.Is Subsequence (0) | 2025.02.12 |
[LeetCode] 1. Two Sum (0) | 2025.02.01 |
[Leetcode]2657. Find the Prefix Common Array of Two Arrays (0) | 2025.01.14 |
[Leetcode] 916. Word Subsets (0) | 2025.01.10 |