Algorithm/LeetCode
[LeetCode] 49. Group Anagrams - Python
์ํ๋
2022. 4. 26. 01:10
๐ค ๋ฌธ์
๐ ํ์ด
์ ๋ฌธ์ ๋ ์ฃผ์ด์ง ๋ฌธ์์ด ๋ฐฐ์ด๋ค์ anagram ๋ผ๋ฆฌ ๋ชจ์๋ณด๋ ๋ฌธ์ ์ ๋๋ค.
๋ฌธ์ ํ์ด์์ ํต์ฌ์ด ๋ ์์ด๋์ด๋ "anagram์ด๋ผ๋ฉด ๋ฌธ์์ด์ ์ ๋ ฌํ์ ๊ฒฝ์ฐ ๊ฐ์ ๊ฐ์ด ๋์จ๋ค" ์ ๋๋ค.
๋ฐ๋ผ์ ํ์ด๋ฅผ ์งํํ ํ๋ฆ์ ์๋์ ๊ฐ์ต๋๋ค.
- ๋ฌธ์์ด ๋ฐฐ์ด์ ํ๋์ฉ ์ดํด๋ณด๋ ๊ณผ์ ์์ ๊ฐ ๋ฌธ์์ด์ ์ ๋ ฌํด๋ณธ๋ค.
- ์ ๋ ฌํ ๋ค dict์ ๋ฌธ์์ด์ ๋ฃ๋๋ค.
- ์ด ๋ key๋ ์ ๋ ฌ๋ ๋ฌธ์์ด, value๋ ์๋ ๋ฌธ์์ด์ด๋ค. ( value๋ ๋ฐฐ์ด์ ์ ์ฅ๋จ )
- ๋ฌธ์์ด ๋ฐฐ์ด์ ๋ค ์ดํด๋ณด์๋ค๋ฉด dict์ values๋ค์ด ๋ฌธ์ ์์ ์๊ตฌํ๋ ์ ๋ต์ด ๋ฉ๋๋ค.
์ด ๋ 2 ~ 3๋ฒ ๊ณผ์ ์ ๊ฐ๋จํ ํ๊ธฐ์ํด ํ์ด์ฌ์์ ์ ๊ณตํ๋ defaultdict๋ฅผ ์ฌ์ฉํ๋ฉด ํธ๋ฆฌํฉ๋๋ค.
๐ป ํ์ด ์ฝ๋๋ ์๋์ ๊ฐ์ต๋๋ค.
from collections import defaultdict
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
anagrams = defaultdict(list)
for str in strs:
sorted_str = ''.join(sorted(str))
anagrams[sorted_str].append(str)
return anagrams.values()
๋ฐ์ํ