티스토리 뷰

💡 문제 해결 아이디어

  • "("가 나오면 저장해둔다.
  • ")"이 나왔을 때, 저장해둔 "("이 없으면 올바르지 않은 괄호! 바로 return False.
  • ")"이 나왔을 때, 저장해둔 "("이 있으면, 저장해둔 "("를 제거한다. (왜냐면 "()" 한쌍이 완성되었기에.)

💻 작성된 코드

def solution(s):
	# 저장할 stack.
    stack = []
    # 모든 괄호들에 대해서,
    for text in s
        if text == ')':
        	# 저장해둔 "("가 없는 경우, 바로 return False
            if not stack:
                return False
            # 아니라면, 저장해둔 가장 최근 "("을 제거.
            stack.pop()
        else:
        	# "("는 리스트 맨 끝에 저장.
            stack.append(text)
    # 짝이 다 지어져서 stack이 비어있다면 True, 아니라면 False.
    return not stack

 

댓글