728x90
[๋ฌธ์ ๋งํฌ] ๐
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
ํ์ด ๋ฐฉ๋ฒ
1๏ธโฃ ")" ๋ฅผ ๋ง๋ ๋ ๊น์ง "(" ๋ฅผ ํ์ ๋ฃ๋๋ค.
queue.append(n)
2๏ธโฃ ")" ๋ฅผ ๋ง๋๋ฉด ํ์ ๋งจ ๋ค์์๋ถํฐ "(" ๋ฅผ ๊บผ๋ธ๋ค.
- ๋จ, "(" ๋ฅผ ๊บผ๋ด๊ธฐ ์ ์ ํ๊ฐ ๋น์ด์์ง ์์์ง ํ์ธํ๋ค. ํ๊ฐ ๋น์ด์์ผ๋ฉด ๊บผ๋ด๋ ค๊ณ ํ ๋ ์๋ฌ๊ฐ ๋๋ค.
- ํ๊ฐ ๋น์ด์์ง ์์ผ๋ฉด ๊บผ๋ด๊ณ ๋น์ด์์ผ๋ฉด ๋ฐ๋ณต๋ฌธ์ ์ค๋จ์ํจ๋ค.
- ์ฒ์๋ถํฐ ")" ๋ฅผ ๋ง๋๋ฉด ๋ฌธ์์ด์ ๋๊น์ง ํ์ธํด๋ ์ฌ๋ฐ๋ฅด๊ฒ ์ง์ง์ด์ง์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.
queue.pop()
3๏ธโฃ ํ๊ฐ ๋น์ด์์ง ์์ผ๋ฉด False๋ฅผ ๋ฐํํ๊ณ , ๋น์ด์์ผ๋ฉด True๋ฅผ ๋ฐํํ๋ค.
โ True ์์

ํ๊ฐ ๋น์ด์์ผ๋ฏ๋ก True ๋ฅผ ๋ฐํํ๋ค.
โ False ์์

ํ๊ฐ ๋น์ด์์ง ์์ผ๋ฏ๋ก False ๋ฅผ ๋ฐํํ๋ค.
Solution
from collections import deque
def solution(s):
answer = True
queue = deque() # ๋น์ด์๋ ํ ์์ฑ
for i in s:
if i == "(":
queue.append(i) # ๋ค์์๋ถํฐ ๋ฃ๊ธฐ
else:
if len(queue) != 0: # ํ๊ฐ ๋น์ด์์ง ์์ผ๋ฉด
queue.pop() # ๋งจ ๋ค์์๋ถํฐ ๊บผ๋ด๊ธฐ
else: # ํ๊ฐ ๋น์ด์์ผ๋ฉด
queue.append(i)
break
if len(queue) > 0: # ํ๊ฐ ๋น์ด์์ง ์์ผ๋ฉด ์ฌ๋ฐ๋ฅด๊ฒ ์ง์ง์ด์ง์ง ์์๋ค๋ ๊ฒ
answer = False
return answer
๊ฐ์ ํ ์
- ์ด ์ฝ๋์์ ํ(deque)๋ฅผ ์ฌ์ฉํด ๊ดํธ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ง์ง์ด์ก๋์ง ํ์ธํ๋ ๋ฐฉ์์ ์ ์๋ํ์ง๋ง, ํ ๋์ list๋ฅผ ์ฌ์ฉํ๋ ํธ์ด ๊ฐ๋จํ๋ค.
- deque์ ์ฅ์ ์ธ ์๋ฐฉํฅ ์ถ๊ฐ/์ญ์ ๊ฐ ํ์ํ์ง ์์ผ๋ฏ๋ก, list๋ก๋ ์ถฉ๋ถํ ์ฒ๋ฆฌํ ์ ์๋ค.
- ๋ํ, ์ฝ๋์์ answer ๋ณ์๋ฅผ ๋ฏธ๋ฆฌ True๋ก ์ ์ํ๋ ๋์ , ๋ง์ง๋ง์ ์กฐ๊ฑด์ ์ง์ ๋ฐํํ๋ฉด ์ฝ๋๊ฐ ๋ ๊ฐ๊ฒฐํด์ง๋ค.
- ์ด๋ ๊ฒ ๊ฐ์ ํ๋ฉด ๊ธธ์ด๊ฐ 100,000๊น์ง ๋๋ s ๋ฌธ์์ด๋ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค.
๊ฐ์ ๋ ์ฝ๋
def solution(s):
stack = []
for char in s:
if char == "(":
stack.append(char) # ์ด๋ฆฐ ๊ดํธ๋ ์คํ์ ์ถ๊ฐ
else:
if stack: # ์คํ์ด ๋น์ด์์ง ์์ผ๋ฉด
stack.pop() # ์คํ์์ ์ด๋ฆฐ ๊ดํธ ํ๋ ์ ๊ฑฐ
else:
return False # ๋ซํ ๊ดํธ๊ฐ ๋ ๋ง์์ง๋ ๊ฒฝ์ฐ False ๋ฐํ
return len(stack) == 0 # ์คํ์ด ๋น์ด์์ด์ผ ์ฌ๋ฐ๋ฅธ ๊ดํธ
728x90
'๐งฉ Algorithm > [Programmers] Level 2' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Programmers] L2. JadenCase ๋ฌธ์์ด ๋ง๋ค๊ธฐ (Python) (0) | 2024.11.08 |
|---|---|
| [Programmers] L2. ์ต์๊ฐ ๋ง๋ค๊ธฐ (Python) (0) | 2024.11.08 |
| Programmers ๋ค์ ํฐ ์ซ์ (Python/Level 2) (0) | 2022.08.13 |
| Programmers ์ต๋๊ฐ๊ณผ ์ต์๊ฐ (Python/Level 2) (0) | 2022.08.12 |
| Programmers ํ๋ ฌ์ ๊ณฑ์ (Python/Level 2) (0) | 2022.08.11 |