๋ฌธ์ ์ค๋ช
์ง์ง์ด ์ ๊ฑฐํ๊ธฐ๋, ์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ ๊ฐ์ง๊ณ ์์ํฉ๋๋ค. ๋จผ์ ๋ฌธ์์ด์์ ๊ฐ์ ์ํ๋ฒณ์ด 2๊ฐ ๋ถ์ด ์๋ ์ง์ ์ฐพ์ต๋๋ค. ๊ทธ๋ค์, ๊ทธ ๋์ ์ ๊ฑฐํ ๋ค, ์๋ค๋ก ๋ฌธ์์ด์ ์ด์ด ๋ถ์ ๋๋ค.
์ด ๊ณผ์ ์ ๋ฐ๋ณตํด์ ๋ฌธ์์ด์ ๋ชจ๋ ์ ๊ฑฐํ๋ค๋ฉด ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ๊ฐ ์ข ๋ฃ๋ฉ๋๋ค. ๋ฌธ์์ด S๊ฐ ์ฃผ์ด์ก์ ๋, ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์ํํ ์ ์๋์ง ๋ฐํํ๋ ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ์ฑ๊ณต์ ์ผ๋ก ์ํํ ์ ์์ผ๋ฉด 1์, ์๋ ๊ฒฝ์ฐ 0์ ๋ฆฌํดํด์ฃผ๋ฉด ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๋ฌธ์์ด S = baabaa ๋ผ๋ฉด
b aa baa → bb aa → aa →
์ ์์๋ก ๋ฌธ์์ด์ ๋ชจ๋ ์ ๊ฑฐํ ์ ์์ผ๋ฏ๋ก 1์ ๋ฐํํฉ๋๋ค.
์ ํ์ฌํญ
- ๋ฌธ์์ด์ ๊ธธ์ด : 1,000,000์ดํ์ ์์ฐ์
- ๋ฌธ์์ด์ ๋ชจ๋ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
s | result |
baabaa | 1 |
cdcd | 0 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
์์ ์์์ ๊ฐ์ต๋๋ค.
์
์ถ๋ ฅ ์ #2
๋ฌธ์์ด์ด ๋จ์์์ง๋ง ์ง์ง์ด ์ ๊ฑฐํ ์ ์๋ ๋ฌธ์์ด์ด ๋ ์ด์ ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์ 0์ ๋ฐํํฉ๋๋ค.
ํ์ด ์ฝ๋
def solution(s):
stack = []
for letter in s:
if not stack:
stack.append(letter)
else:
if stack[-1] == letter:
stack.pop()
else:
stack.append(letter)
if len(stack) == 0:
answer = 1
else:
answer = 0
return answer
์คํ ์๋ฃ๊ตฌ์กฐ ๋ฌธ์ .
ํ์ด์ฌ์์์ stack์ list ์๋ฃ๊ตฌ์กฐ์ ๋์ผํ๋ฏ๋ก ๋ณ๋ค๋ฅธ import๋ ๊ตฌํ์ด ํ์ ์๋ค.
์ ๊ฑฐ ํ ์๋ค๋ก ์ด์ด ๋ถ์ธ๋ค๋ ๋ง์์ ํจ์ ์ ๋น ์ง๊ธฐ ์ฝ๋ค.
while ๋ฌธ์ผ๋ก ๋ฐ๋ณตํด ์ด์ด ๋ถ์ด๊ณ ๋ค์ ์ ๊ฑฐ๋ฅผ ์งํํ๋ค๋ฉด ํจ์จ์ฑ ์ธก๋ฉด์์ ์คํจํ ํ๋ฅ ์ด ๋๋ค.
์คํ์ ๊ตฌ์กฐ ์, appendํ๊ณ pop ํ๋ ๊ณผ์ ์์ ์๋์ผ๋ก ์ ๋ค๋ก ์ด์ด ๋ถ์ด์ง๋ค๊ณ ๋ณผ ์ ์๋ค.
๋ฐ๋ผ์ ๋จ์ํ ๋ชจ๋ ๋ฌธ์์ ๋ํด์ ์คํ์ ํ์ฉํ ๋ก์ง์ ๊ฑฐ์น๋ฉด ๊ฐ์ ์ป์ ์ ์๋๋ก ์ค๊ณํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
์คํ์ ๋จ์์๋ ๊ฒ์ด ์๋ค๋ฉด ๋ชจ๋ ์ง์ง์ด ์ ๊ฑฐํ ์ ์์ผ๋ฏ๋ก 1์, ์๋๋ผ๋ฉด 0์ ๋ฆฌํดํ๋ฉด ์ ๋ต์ด๋ค.
'๐ ์ฝ๋ฉํ ์คํธ ๋๋น : PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] N๊ฐ์ ์ต์๊ณต๋ฐฐ์ (level2, python) (0) | 2022.09.09 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ตฌ๋ช ๋ณดํธ (level2, python) (0) | 2022.09.08 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ด ๋๋ง์๊ธฐ (level2, python) (0) | 2022.09.08 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์นดํซ (level2, python) (0) | 2022.09.08 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ค์ ํฐ ์ซ์ (level2, python) (0) | 2022.09.08 |