알고리즘 with python/알고리즘 스터디
99클럽 코테 스터디 4일차 TIL 스택/큐 :프로그래머스 LV.2 올바른 괄호 with Python
정민됴
2024. 5. 23. 13:13
https://school.programmers.co.kr/learn/courses/30/lessons/12909
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제는 위쪽에서!
스택의 아아아아아아아아주 대표적인 문제 중 하나인 괄호 문제!
많이 풀어봐서 어려운 것은 없었다.
def solution(s):
answer = True
stack = []
# '('일 때 집어넣고 ')'일 때 pop
for p in s:
if p == '(':
stack.append('(')
else:
# 열린 괄호가 없다면 매칭 X
if not stack:
answer = False
break
stack.pop()
# 열린 괄호가 남았다면 매칭 X
if stack:
answer = False
return answer
열린 괄호와 닫힌 괄호가 짝을 이뤄야되기 때문에 열린 괄호일 때 스택에 집어넣고 닫힌 괄호 일 때 스택에서 빼는 방식으로 풀면 된다.
이 때 닫힌 괄호 차례인데 스택에 열린 괄호가 없거나 포문을 다 돌았는데도 열린괄호가 남아있다면 짝꿍이 없단 뜻이기 때문에 answer에 False를 넣어주면 된다!