Skip to content

Commit 098cfe9

Browse files
authored
Merge pull request #1434 from KwonNayeon/main
2 parents 826eb07 + c89af33 commit 098cfe9

File tree

2 files changed

+36
-21
lines changed

2 files changed

+36
-21
lines changed

โ€Žvalid-palindrome/KwonNayeon.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,35 @@
55
66
<Solution 1>
77
Time Complexity: O(n)
8+
- ๋ฌธ์ž์—ด ๊ธธ์ด(n)์— ๋น„๋ก€ํ•จ
9+
- ์ •๊ทœ์‹ ์ฒ˜๋ฆฌ, ์†Œ๋ฌธ์ž ๋ณ€ํ™˜, ์—ญ์ˆœ ๋น„๊ต ๋ชจ๋‘ O(n)
810
911
Space Complexity: O(n)
12+
- ๋ณ€ํ™˜๋œ ๋ฌธ์ž์—ด๊ณผ ์—ญ์ˆœ ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์ด ํ•„์š”ํ•จ
13+
14+
ํ’€์ด ๋ฐฉ๋ฒ•:
15+
- ๋ฌธ์ž์—ด์—์„œ ์•ŒํŒŒ๋ฒณ๊ณผ ์ˆซ์ž๋งŒ ๋‚จ๊ธฐ๊ณ  ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜
16+
- ๋ณ€ํ™˜๋œ ๋ฌธ์ž์—ด๊ณผ ๊ทธ ์—ญ์ˆœ์ด ๊ฐ™์€์ง€ ๋น„๊ต
1017
"""
1118
class Solution:
1219
def isPalindrome(self, s: str) -> bool:
13-
s = re.sub(r'[^a-zA-z0-9]', '', s).lower()
20+
s = re.sub(r'[^a-zA-Z0-9]', '', s).lower()
1421
if s == s[::-1]:
1522
return True
1623
return False
1724
"""
1825
<Solution 2>
1926
Time Complexity: O(n)
20-
- ํŒฐ๋ฆฐ๋“œ๋กฌ์ผ ๊ฒฝ์šฐ, ๊ฐ ๋ฌธ์ž๋ฅผ ํ•œ ๋ฒˆ์”ฉ ๊ฒ€์‚ฌ
27+
- ํŒฐ๋ฆฐ๋“œ๋กฌ์ผ ๊ฒฝ์šฐ, ๊ฐ ๋ฌธ์ž๋ฅผ ํ•œ ๋ฒˆ์”ฉ ๊ฒ€์‚ฌํ•จ
2128
2229
Space Complexity: O(1)
2330
- left, right ํฌ์ธํ„ฐ ์™ธ์— ์ถ”๊ฐ€ ๊ณต๊ฐ„ ์‚ฌ์šฉ ์—†์Œ
31+
32+
ํ’€์ด ๋ฐฉ๋ฒ•:
33+
- ์–‘์ชฝ ๋์—์„œ ์‹œ์ž‘ํ•˜๋Š” ๋‘ ํฌ์ธํ„ฐ(left, right)๋ฅผ ํ™œ์šฉํ•œ ๋ฐฉ๋ฒ•
34+
- ์•ŒํŒŒ๋ฒณ/์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž๋Š” ๊ฑด๋„ˆ๋›ฐ๋ฉฐ ํฌ์ธํ„ฐ ์ด๋™
35+
- ๋‘ ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฌธ์ž๊ฐ€ ๋‹ค๋ฅด๋ฉด ์ฆ‰์‹œ False ๋ฐ˜ํ™˜
36+
- ๋ชจ๋“  ๋น„๊ต๊ฐ€ ์ผ์น˜ํ•˜๋ฉด True ๋ฐ˜ํ™˜
2437
"""
2538
class Solution:
2639
def isPalindrome(self, s: str) -> bool:

โ€Žvalid-parentheses/KwonNayeon.py

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,28 +12,30 @@
1212
- ๋”ฐ๋ผ์„œ ์ž…๋ ฅ ํฌ๊ธฐ์— ๋น„๋ก€ํ•˜๋Š” O(n) ๊ณต๊ฐ„ ํ•„์š”
1313
1414
ํ’€์ด๋ฐฉ๋ฒ•:
15-
1. ์Šคํƒ์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Š” ๊ด„ํ˜ธ('(', '{', '[')๋ฅผ ์ €์žฅ
16-
2. Dictionary๋ฅผ ์‚ฌ์šฉํ•ด ๋‹ซ๋Š” ๊ด„ํ˜ธ์™€ ์—ฌ๋Š” ๊ด„ํ˜ธ์˜ ์Œ์„ O(1)๋กœ ๋งค์นญ
17-
3. ๋ฌธ์ž์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ:
18-
- ์—ฌ๋Š” ๊ด„ํ˜ธ๋Š” ์Šคํƒ์— ์ถ”๊ฐ€
19-
- ๋‹ซ๋Š” ๊ด„ํ˜ธ๊ฐ€ ๋‚˜์˜ค๋ฉด:
20-
a) ์Šคํƒ์ด ๋น„์–ด์žˆ๊ฑฐ๋‚˜
21-
b) ์Šคํƒ ์ตœ์ƒ๋‹จ์˜ ๊ด„ํ˜ธ๊ฐ€ ํ˜„์žฌ ๋‹ซ๋Š” ๊ด„ํ˜ธ์™€ ๋งค์นญ๋˜์ง€ ์•Š์œผ๋ฉด
22-
-> ์ž˜๋ชป๋œ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด
23-
- ๋งค์นญ๋˜๋Š” ๊ฒฝ์šฐ ์Šคํƒ์—์„œ pop
24-
4. ๋ชจ๋“  ์ˆœํšŒ๊ฐ€ ๋๋‚œ ํ›„ ์Šคํƒ์ด ๋น„์–ด์žˆ์–ด์•ผ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด
15+
- key: ๋‹ซ๋Š” ๊ด„ํ˜ธ, value: ๋Œ€์‘ํ•˜๋Š” ์—ฌ๋Š” ๊ด„ํ˜ธ
16+
- ํ˜„์žฌ ๋ฌธ์ž๊ฐ€ ๋‹ซ๋Š” ๊ด„ํ˜ธ์ธ ๊ฒฝ์šฐ
17+
- ์Šคํƒ์ด ๋น„์–ด์žˆ๋‹ค๋ฉด(์ง์ด ์—†์Œ) -> False
18+
- ์Šคํƒ์—์„œ ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ถ”๊ฐ€๋œ ์—ฌ๋Š” ๊ด„ํ˜ธ๋ฅผ ๊บผ๋ƒ„, ๋งŒ์•ฝ ๋Œ€์‘ํ•˜๋Š” ๊ฐ’์ด ์•„๋‹ˆ๋ผ๋ฉด -> False
19+
- ํ˜„์žฌ ๋ฌธ์ž๊ฐ€ ์—ฌ๋Š” ๊ด„ํ˜ธ์ธ ๊ฒฝ์šฐ -> stack์— ์ถ”๊ฐ€
20+
- ๋ชจ๋“  ๋ฌธ์ž ์ฒ˜๋ฆฌ ํ›„, ์Šคํƒ์ด ๋น„์–ด์žˆ์œผ๋ฉด ๋ชจ๋“  ๊ด„ํ˜ธ์˜ ์ง์ด ๋งž์Œ (True)
2521
"""
2622
class Solution:
2723
def isValid(self, s: str) -> bool:
2824
stack = []
29-
pairs = {')': '(', '}': '{', ']': '['}
30-
25+
26+
mapping = {')': '(', '}': '{', ']': '['}
27+
3128
for char in s:
32-
if char in '({[':
33-
stack.append(char)
34-
else:
35-
if not stack or stack[-1] != pairs[char]:
29+
if char in mapping:
30+
if not stack:
3631
return False
37-
stack.pop()
38-
39-
return len(stack) == 0
32+
33+
top = stack.pop()
34+
35+
if mapping[char] != top:
36+
return False
37+
38+
else:
39+
stack.append(char)
40+
41+
return not stack

0 commit comments

Comments
ย (0)