Skip to content

Commit bf7f794

Browse files
committed
feat: week2 - valid anagram
1 parent 0fd9c87 commit bf7f794

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

โ€Žvalid-anagram/Seoya0512.pyโ€Ž

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
'''
2+
Approach 1: Sorting
3+
- ์ œ์ผ ๋จผ์ € ์ƒ๊ฐ๋‚˜๋Š” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์€ sorted ํ•จ์ˆ˜๋ฅผ ํ™œ์šฉํ•ด์„œ ๋ถ„๋ฅ˜ํ•ด์„œ s ์™€ t๊ฐ€ ๋™์ผํ•œ์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
4+
- ์ •๋ ฌ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด n log n์˜ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ์ธ์ง€ํ•˜๊ณ ๋„ ํ’€์–ด๋ดค์Šต๋‹ˆ๋‹ค.
5+
6+
Time Complexity: O(n log n)
7+
- ๋ถ„๋ฅ˜ ์ •๋ ฌ์—์„œ O(n log n) ๋ฐœ์ƒ
8+
9+
Space Complexity: O(n)
10+
- ๋ถ„๋ฅ˜ ๋ฌธ์ž์—ด์„ ์ƒ์„ฑํ•˜๋Š” ๊ณต๊ฐ„ ๋•Œ๋ฌธ์— O(n) ๋ฐœ์ƒ
11+
'''
12+
class Solution:
13+
def isAnagram(self, s: str, t: str) -> bool:
14+
sorted_s = ''.join(sorted(s))
15+
sorted_t = ''.join(sorted(t))
16+
if(sorted_s == sorted_t):
17+
return True
18+
else:
19+
return False
20+
21+
'''
22+
Approach 2: ๋นˆ๋„์ˆ˜ ์นด์šดํŒ…
23+
- ๋‘ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ๋จผ์ € ๋น„๊ตํ•ด์„œ ๋‹ค๋ฅด๋ฉด False๋ฅผ ๋ฐ˜ํ™˜ํ•ด์„œ 1์ฐจ ํ•„ํ„ฐ๋ง
24+
- count ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ด์„œ s ๋ฌธ์ž์—ด์˜ ๋นˆ๋„์ˆ˜๋ฅผ ์นด์šดํŒ…
25+
- t ๋ฌธ์ž์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ ๋”•์…”๋„ˆ๋ฆฌ์— ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ์นด์šดํŒ…์„ ๊ฐ์†Œ์‹œํ‚ค๊ณ , ๊ฐ’์ด ์—†์œผ๋ฉด False๋ฅผ ๋ฐ˜ํ™˜
26+
27+
28+
Time Complexity: O(n)
29+
- ๋‘ ๋ฌธ์ž์—ด์„ ๊ฐ๊ฐ ์ˆœํšŒํ•˜๋ฉด ๋”•์…”๋„ˆ๋ฆฌ ์ƒ์„ฑ, ๋นˆ๋„์ˆ˜ ์นด์šดํŒ… ๋ฐ ๊ฐ์†Œ ์—์„œ O(n) ๋ฐœ์ƒ
30+
31+
Space Complexity: O(n)
32+
- count ๋”•์…”๋„ˆ๋ฆฌ ์ €์žฅ ๊ณต๊ฐ„ ๋•Œ๋ฌธ์— O(n) ๋ฐœ์ƒ
33+
'''
34+
class Solution:
35+
def isAnagram(self, s: str, t: str) -> bool:
36+
# ๊ธธ์ด๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด False
37+
if len(s) != len(t):
38+
return False
39+
# ๋ฌธ์ž ๊ฐœ์ˆ˜ ์นด์šดํŠธ
40+
count = {}
41+
for val in s:
42+
count[val] = count.get(val, 0) + 1
43+
for val in t:
44+
if val not in count:
45+
return False
46+
count[val] -= 1
47+
# ์˜ˆ์‹œ : s = "aacc", t = "ccac" ์ธ ๊ฒฝ์šฐ count[val] ์ด ์Œ์ˆ˜๊ฐ€ ๋  ์ˆ˜ ์žˆ์Œ
48+
if count[val] < 0:
49+
return False
50+
return True

0 commit comments

Comments
ย (0)