LeetCode-242
Valid Anagram : info
note : sub
the two strings contain the same letters, but the order of the letters may be different.
:::python
class Solution: def isAnagram(self, s: str, t: str) -> bool: if len(s)!=len(t): return False for i in s: if i not in t: return False else: t = t.replace(i,'',1) return True
Result : 59ms Memory: 16.8mb
๋ฌธ์ ์ดํด
์ฃผ์ด์ง ๋ฌธ์์ด s์ t๊ฐ ์ฃผ์ด์ก์ ๋, s์ ๋ฌธ์๋ฅผ ์ฌ๋ฐฐ์ดํ์ฌ t๋ฅผ ์ป์ ์ ์๋์ง ์ฌ๋ถ๋ฅผ ๋ฐํํ๋ ๋ฌธ์ ์ ๋๋ค. ์ฆ, s์ t๋ ์ํ๋ฒณ์ ์ข ๋ฅ์ ๊ฐ์๊ฐ ๋์ผํด์ผ ํฉ๋๋ค.
๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ
์ฃผ์ด์ง ๋ฌธ์์ด์์ ์ํ๋ฒณ์ ๊ฐ์์ ์ข ๋ฅ๊ฐ ๋์ผํ์ง ๋น๊ตํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ํด ๋ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ ๊ฐ์์ง ํ์ธํ ๋ค, for ๋ฌธ์ ์ด์ฉํด s ๋ฌธ์์ด์ ๋ชจ๋ ๋ฌธ์์ ๋ํด t์ ํฌํจ๋์ด ์๋์ง ํ์ธํฉ๋๋ค. t์์ ๋ฝ์ ๋ฌธ์๋ฅผ ํ๋์ฉ ์ญ์ ํ๋ฉฐ ๋ฌธ์์ด์ด ๋์ผํ์ง ๊ฒ์ฌํฉ๋๋ค.
์ฌ์ฉ์ ์ฝ๋ ๋ถ์
์ฃผ์ด์ง ์ฝ๋์์๋ s์ ๋ชจ๋ ๋ฌธ์์ ๋ํด t์ ํฌํจ๋์ด ์๋์ง ํ๋์ฉ ํ์ธํฉ๋๋ค. t์์ ์ญ์ ๋๋ ๊ณผ์ ์์ ์๊ฐ ๋ณต์ก๋๊ฐ O(n^2)์ด ๋์ค๋ฏ๋ก, ๋ฌธ์์ด ๊ธธ์ด๊ฐ ๊ธธ์๋ก ์คํ ์๊ฐ์ด ๊ธธ์ด์ง๋๋ค.
์ถ์ฒ ์ฝ๋
๋ค์์ Counter ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ ์ถ์ฒ ์ฝ๋์ ๋๋ค. Counter ํจ์๋ฅผ ์ด์ฉํ๋ฉด ๋ ๋ฌธ์์ด์์ ์ํ๋ฒณ์ ์ข ๋ฅ์ ๊ฐ์๋ฅผ ์ธ์ด ๋์ ๋๋ฆฌ ํํ๋ก ๋ฐํํฉ๋๋ค. ์ดํ ๋ ๋์ ๋๋ฆฌ๋ฅผ ๋น๊ตํด ๋ ๋ฌธ์์ด์ด ๋์ผํ์ง ํ์ ํ ์ ์์ต๋๋ค.
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
if len(s) != len(t):
return False
return collections.Counter(s) == collections.Counter(t)
์ด ์ฝ๋๋ฅผ ์ด์ฉํ๋ฉด ๋ฌธ์์ด ๊ธธ์ด๊ฐ ๊ธธ์ด์ ธ๋ ์คํ ์๊ฐ์ด ๋๋ ค์ง์ง ์์ต๋๋ค. ํ์ง๋ง ์ด ์ฝ๋ ๋ํ ์ ํ ์๊ฐ์ด ์์๋๋ฏ๋ก, ๋ฌธ์์ด ๊ธธ์ด๊ฐ ๊ต์ฅํ ๊ธธ์ด์ง ๊ฒฝ์ฐ ํด์ ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ์ด์ฉํด ๋ฌธ์์ด์ ์ํ๋ฒณ์ ์นด์ดํธํ๋ ๋ฐฉ๋ฒ๋ ๊ณ ๋ คํด ๋ณผ ์ ์์ต๋๋ค.
'๐ข One step' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[phpAdmin] (0) | 2023.07.29 |
---|---|
[leetcode-36] Valid Sudoku (0) | 2023.05.18 |
[leetcode-217] Contains Duplicate (0) | 2023.05.11 |
How to LeetCode effectively (0) | 2023.05.10 |
[leetcode-706] Design HashMap (0) | 2023.05.09 |
LeetCode-242
Valid Anagram : info
note : sub
the two strings contain the same letters, but the order of the letters may be different.
:::python
class Solution: def isAnagram(self, s: str, t: str) -> bool: if len(s)!=len(t): return False for i in s: if i not in t: return False else: t = t.replace(i,'',1) return True
Result : 59ms Memory: 16.8mb
๋ฌธ์ ์ดํด
์ฃผ์ด์ง ๋ฌธ์์ด s์ t๊ฐ ์ฃผ์ด์ก์ ๋, s์ ๋ฌธ์๋ฅผ ์ฌ๋ฐฐ์ดํ์ฌ t๋ฅผ ์ป์ ์ ์๋์ง ์ฌ๋ถ๋ฅผ ๋ฐํํ๋ ๋ฌธ์ ์ ๋๋ค. ์ฆ, s์ t๋ ์ํ๋ฒณ์ ์ข ๋ฅ์ ๊ฐ์๊ฐ ๋์ผํด์ผ ํฉ๋๋ค.
๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ
์ฃผ์ด์ง ๋ฌธ์์ด์์ ์ํ๋ฒณ์ ๊ฐ์์ ์ข ๋ฅ๊ฐ ๋์ผํ์ง ๋น๊ตํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ํด ๋ ๋ฌธ์์ด์ ๊ธธ์ด๊ฐ ๊ฐ์์ง ํ์ธํ ๋ค, for ๋ฌธ์ ์ด์ฉํด s ๋ฌธ์์ด์ ๋ชจ๋ ๋ฌธ์์ ๋ํด t์ ํฌํจ๋์ด ์๋์ง ํ์ธํฉ๋๋ค. t์์ ๋ฝ์ ๋ฌธ์๋ฅผ ํ๋์ฉ ์ญ์ ํ๋ฉฐ ๋ฌธ์์ด์ด ๋์ผํ์ง ๊ฒ์ฌํฉ๋๋ค.
์ฌ์ฉ์ ์ฝ๋ ๋ถ์
์ฃผ์ด์ง ์ฝ๋์์๋ s์ ๋ชจ๋ ๋ฌธ์์ ๋ํด t์ ํฌํจ๋์ด ์๋์ง ํ๋์ฉ ํ์ธํฉ๋๋ค. t์์ ์ญ์ ๋๋ ๊ณผ์ ์์ ์๊ฐ ๋ณต์ก๋๊ฐ O(n^2)์ด ๋์ค๋ฏ๋ก, ๋ฌธ์์ด ๊ธธ์ด๊ฐ ๊ธธ์๋ก ์คํ ์๊ฐ์ด ๊ธธ์ด์ง๋๋ค.
์ถ์ฒ ์ฝ๋
๋ค์์ Counter ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ ์ถ์ฒ ์ฝ๋์ ๋๋ค. Counter ํจ์๋ฅผ ์ด์ฉํ๋ฉด ๋ ๋ฌธ์์ด์์ ์ํ๋ฒณ์ ์ข ๋ฅ์ ๊ฐ์๋ฅผ ์ธ์ด ๋์ ๋๋ฆฌ ํํ๋ก ๋ฐํํฉ๋๋ค. ์ดํ ๋ ๋์ ๋๋ฆฌ๋ฅผ ๋น๊ตํด ๋ ๋ฌธ์์ด์ด ๋์ผํ์ง ํ์ ํ ์ ์์ต๋๋ค.
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
if len(s) != len(t):
return False
return collections.Counter(s) == collections.Counter(t)
์ด ์ฝ๋๋ฅผ ์ด์ฉํ๋ฉด ๋ฌธ์์ด ๊ธธ์ด๊ฐ ๊ธธ์ด์ ธ๋ ์คํ ์๊ฐ์ด ๋๋ ค์ง์ง ์์ต๋๋ค. ํ์ง๋ง ์ด ์ฝ๋ ๋ํ ์ ํ ์๊ฐ์ด ์์๋๋ฏ๋ก, ๋ฌธ์์ด ๊ธธ์ด๊ฐ ๊ต์ฅํ ๊ธธ์ด์ง ๊ฒฝ์ฐ ํด์ ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ์ด์ฉํด ๋ฌธ์์ด์ ์ํ๋ฒณ์ ์นด์ดํธํ๋ ๋ฐฉ๋ฒ๋ ๊ณ ๋ คํด ๋ณผ ์ ์์ต๋๋ค.
'๐ข One step' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[phpAdmin] (0) | 2023.07.29 |
---|---|
[leetcode-36] Valid Sudoku (0) | 2023.05.18 |
[leetcode-217] Contains Duplicate (0) | 2023.05.11 |
How to LeetCode effectively (0) | 2023.05.10 |
[leetcode-706] Design HashMap (0) | 2023.05.09 |