lv 2. 올바른 괄호

https://school.programmers.co.kr/learn/courses/30/lessons/12909

💡문제 분석 요약

괄호가 바르게 짝지어졌으면 true, 아니면 false를 리턴한다.

💡알고리즘 설계

  1. 입력받은 문자가 ‘(’일 경우 스택에 추가
  2. 아닐경우 ‘(’를 pop, 스택이 비어있을 경우 false 리턴
  3. 스택 연산이 모두 끝났는데 스택이 비어있지 않으면 false, 스택이 비어있으면 true 리턴

💡코드

def solution(s):
    stack=[]
    for i in s:
        if i=='(':
            stack.append('(')
        else:
            if stack:
                stack.pop()
            else:
                return False
    
    if not stack:
        return True
    else:
        return False

💡시간복잡도

for문: O(N)

💡 느낀점 or 기억할정보

파이썬에는 isEmpty()가 없으므로, not stack 혹은 len(stack)==0을 이용해야한다.