๋ฌธ์
2390. Removing Stars From a String
https://leetcode.com/problems/removing-stars-from-a-string/
์ฝ๋
class Solution(object):
def removeStars(self, s):
s = list(s)
while '*' in s:
for i in range(len(s)-1):
if s[i + 1] == '*':
s.pop(i+1)
s.pop(i)
break
return ''.join(s)
ํ์ด
s = list(s)
๋งค๊ฐ๋ณ์๋ก ๋ฐ์ ๋ฌธ์์ด s๋ฅผ ๋ฆฌ์คํธํ ์ํจ๋ค.
ex ) "leet**cod*e" โก๏ธ ['l', 'e', 'e', 't', '*', '*', 'c', 'o', 'd', '*', 'e']
while '*' in s:
for i in range(len(s)-1):
if s[i + 1] == '*':
s.pop(i+1)
s.pop(i)
break
s๋ฐฐ์ด์ '*'์ด ์์ด์ง๋๊น์ง ๋ค์์ ์์ ์ ๊ณ์ ๋ฐ๋ณตํ๋ค.
- s์ ์ธ๋ฑ์ค i๋ฒ์งธ ์์์ ๋ค์ ์์๊ฐ '*'์ด๋ผ๋ฉด
- ์ธ๋ฑ์ค i๋ฒ์งธ ์์์ ๋ค์ ์์์ธ '*'์ popํ๊ณ
- ์ง๊ธ ๋ฐฉ๋ฌธ์ค์ธ ์์ ์ธ๋ฑ์ค i๋ฒ์งธ ์์๋ popํ๋ค.
- ํ๋ฒ์ ์ญ์ ์์ ์ ํ๋ค๋ฉด breakํ๊ณ ๋ค์ 1๋ฒ์์ ์ ๋ฐ๋ณตํ๋ค.
return ''.join(s)
s์ ์์๋ค์ ํ๋์ ๋ฌธ์์ด๋ก ํฉํด์ ๋ฐํํ๋ค.
๋ค๋ฅธ์ฝ๋
class Solution(object):
def removeStars(self, s):
stack = []
for c in s:
if c == '*' and stack:
stack.pop()
else:
stack.append(c)
return ''.join(stack)
ํ์ด
์ด์ ์ฝ๋๋ณด๋ค ์คํ์ ๊ฐ๋ ์ด ์ ์ ์ฉ๋ ์ฝ๋์ด๋ค.
stack = []
๋น stack ๋ฐฐ์ด์ ์์ฑํ๋ค.
for c in s:
if c == '*' and stack:
stack.pop()
else:
stack.append(c)
์ ๋ ฅ ๋ฐ์๋ s ๋ฌธ์์ด์ ํ๊ธ์์ฉ(c) ๋ฐฉ๋ฌธํ๋ค.
๋ง์ฝ c๊ฐ '*'์ด๊ณ ์คํ์ ์์๊ฐ ์๋ค๋ฉด, ์คํ์ ์๋ ์์์ค ์ ์ผ ๋ง์ง๋ง ์์๋ฅผ popํ๋ค.
c๊ฐ '*'์ด ์๋๊ฑฐ๋ ์คํ์ ์์๊ฐ ์๋ค๋ฉด, ์คํ์ c๋ฅผ ์ฐจ๊ณก์ฐจ๊ณก ์ถ๊ฐํ๋ค.
return ''.join(stack)
์คํ์ ์๋ ์์๋ค์ ํ๋์ ๋ฌธ์์ด๋ก ํฉํด์ ๋ฐํํ๋ค.
์๋กญ๊ฒ ๋ฐฐ์ด์ / ๋๋์
- ๊ฐ๋จํ ๋ฌธ์ ์ฌ๋ ํค์๋๋ฅผ ์ ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํ ์ค ์๋๋ ๋ชจ๋ฅด๋ ์ฐจ์ด๋ ํฐ ๊ฒ ๊ฐ๋ค.
- ์ฌ์ด ๊ตฌํ ๋ฌธ์ ์ฌ๋ ์ฌ๋ฌ๊ฐ์ง ํค์๋ค๋ฅผ ๋์ ํด์ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด๋ฉฐ ๋ค์ํ๊ฒ ์ ๊ทผํ๋ ๊ด์ ์ ๊ธธ๋ฌ์ผ๊ฒ ๋ค.
๋ค๋ฅธ ์๊ฒฌ์ด๋ ๊ถ๊ธํ์ ๊ฒ ์๋ค๋ฉด ํธํ๊ฒ ๋๊ธ ๋ฌ์์ฃผ์ธ์ :)
'์ฝ๋ฉํ ์คํธ๐ก' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฆฟ์ฝ๋] Seat Reservation Manager (0) | 2024.06.26 |
---|---|
[๋ฆฟ์ฝ๋] Minimum Add to Make Parentheses Valis (0) | 2024.06.25 |
[๋ฆฟ์ฝ๋] Find the Winner of the Circluar Game (0) | 2024.06.22 |
[๋ฐฑ์ค] ๊ฑธ๊ทธ๋ฃน ๋ง์คํฐ ์ค์์ด (0) | 2024.06.21 |
[๋ฐฑ์ค] ์์ด๋ฒ๋ฆฐ ๊ดํธ (0) | 2024.06.20 |