나의 풀이
- [ic]([/ic] 괄호가 나올 때만 스택에 저장해뒀다가, [ic])[/ic] 괄호가 나오면 pop()을 진행해 제거했다.
- pop() 과정에서 런타임 오류가 발생하지 않도록, 짝이 불가능한 경우 False를 바로 반환했다.
def solution(s):
# 짝 확인
stack = []
for char in s:
if char == "(":
stack.append(char)
else:
# 짝 불가능
if len(stack) == 0:
return False
else:
stack.pop()
return len(stack) == 0
다른 사람 풀이
- 스택의 개념만 활용하고 자료형을 활용하지는 않았다.
def solution(s):
OPEN = '('
CLOSE = ')'
count = 0
for char in s:
if char == OPEN:
count += 1
if char == CLOSE:
count -= 1
# count값이 0보다 작아졌다는 뜻은, 이미 짝이 맞지 않는다는 뜻이므로 early return
# ex: '())', ')(' 이런 경우
if count < 0:
return False
return count == 0
참고하면 좋을 자료