문제 요약 : 괄호가 제대로 열려 있는 지 체크하는 문제
이건 유명한 스택관련 문제이기 때문에 파이썬에 내장 스택을 어떻게 쓰는 지 몰라서 좀 찾아봄
#스택 문제 ㅇㅇ 걍 리스트의 내장함수를 쓰면 됨
def solution(s):
stack = []
for i in s:
if i == ")" :
if len(stack) == 0:
return False
stack.pop()
elif i == "(" :
stack.append(i)
return len(stack) == 0
열린 괄호의 경우, 그냥 쉽게 말해서 닫힌 괄호는 pop만 해야해서 스택 안에 괄호가 없으면 문제가 있는 괄호로 판별해야 해서, len() 함수를 이용했다. 하지만 try-catch를 통해서 하는 것도 좋아 보이더라 ㅇㅇ
def solution(s):
stack = []
for i in s:
if i == ")" :
# if len(stack) == 0:
# return False
# stack.pop()
try :
stack.pop()
except IndexError:
return False
elif i == "(" :
stack.append(i)
return len(stack) == 0
제출해보니, 좀 이렇게 예외처리가 조금 더 효율적인 것 같다. len()은 아무래도 함수를 계속 호출해서 그런가... 싶다
