๋ฌธ์ ์ ๋ชฉ | ์ ๋ต๋ฅ | ๋์ด๋ |
49. group-anagrams | 66.8% | Medium |
Group Anagrams - LeetCode
Can you solve this real interview question? Group Anagrams - Given an array of strings strs, group the anagrams together. You can return the answer in any order. An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase
leetcode.com
๋ฌธ์ ์์ฝ
๋ฌธ์์ด ๋ฐฐ์ด์ ์ ๋๊ทธ๋จ ๊ธฐ์ค์ผ๋ก ๋ฌถ์ด๋ผ
์กฐ๊ฑด 1) ๋ฌธ์์ด ๋ฐฐ์ด์ด ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ค
์กฐ๊ฑด 2) ์ ๋๊ทธ๋จ์ ๋จ์ด๋ ์ด๊ตฌ์ธ๋ฐ, ๋ค๋ฅธ ๋จ์ด๋ ์ด๊ตฌ์ ๋ชจ๋ ๋จ์ด๋ฅผ ํ์ฉํด์ ์ฌ๋ฐฐ์ดํ๋ ๊ฒ์ด๋ค.
Step1. ๋์ ๋๋ฆฌ๋ก ๊ฐ์ ์ธ๊ธฐ by defaultdict
defaultdict ์๋ฃํ์ ๊ฐ์ด ์์ ๊ฒฝ์ฐ ์ค๋ฅ ๋์ ๊ธฐ๋ณธ๊ฐ์ ์ถ๋ ฅํ๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ ๋์ ๋๋ฆฌ ๋์ ์์ฃผ ์ฌ์ฉ
defaultdict ์ฌ์ฉ : object ์๋ฃํ์ผ๋ก ๊ธฐ๋ณธ ์๋ฃํ์ ์ง์ ๊ฐ์ด ์์๊ฒฝ์ฐ ์ค๋ฅ๋ฅผ ์ถ๋ ฅํ์ง ์๊ณ ๊ธฐ๋ณธ๊ฐ์ ์ถ๋ ฅ |
collections.defaultdict(object) |
Step2. ๋์ ๋๋ฆฌ key ๊ฐ์ผ๋ก ์ ๋ ฌ๋ ํํ์ ๋จ์ด๋ ์ด๊ตฌ๊ฐ ์ฌ์ฉ๋์ด์ผ ํจ -> ์ ๋ ฌ ํจ์ ์ด์ฉ
๋ฆฌ์คํธ๋ฅผ ์ ๋ ฌ๋ ์ํ๋ก ๋ณ๊ฒฝ(๋ฐํ X) | list.sort(key=None, reverse=False) |
์ดํฐ๋ฌ๋ธ ๊ฐ์ฒด๋ก๋ถํฐ ์ ๋ ฌ๋ ๋ฆฌ์คํธ๋ฅผ ์์ฑ(๋ฐํ O) | list.sorted(key=None, reverse=False) |
๊ตฌํ
class Solution(object):
def groupAnagrams(self, strs):
"""
:type strs: List[str]
:rtype: List[List[str]]
"""
#Step1. ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋น ๋ฆฌ์คํธ๋ฅผ ์ง์ ํ๋ค.
group_anagrams=collections.defaultdict(list)
#Step2. word๋ฅผ ์ ๋ ฌํด key๊ฐ์ผ๋ก ๋ง๋ค์ด์ ์ถ๊ฐ
for word in strs:
group_anagrams[''.join(sorted(word))].append(word)
return group_anagrams.values()
'์๊ณ ๋ฆฌ์ฆ๐ฅ > ๋ฌธ์ ํ์ด (Python)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[LeetCode] 1. two_sum (Easy) 2023/4/29 (0) | 2023.04.29 |
---|---|
[LeetCode] 5. longest_palindromic_substring (Medium) 2023/4/28 (0) | 2023.04.28 |
[LeetCode] 937. reorder-data-in-log-files (Easy) 2023/4/27 (0) | 2023.04.27 |
[LeetCode] 344. reverse-string (Easy) 2023/4/27 (0) | 2023.04.27 |
[LeetCode] 125. valid-palindrome (Easy) 2023/4/27 (0) | 2023.04.27 |