프로그래머스-Level2-더-괄호회전하기(파이썬)

문제이해

  • 주어진 괄호는 길이-1 만큼 왼쪽으로 회전을 하여 모든 괄호의 목록 중에서 정상적인 괄호의 개수를 출력하면 되는 것이다.

문제풀이

  • n-1번 회전을 괄호 리스트를 회전시킨다.
  • Stack 자료구조를 활용하여 괄호가 정상적인 괄호 리스트인지 확인한다.

문제코드

from collections import deque

def solution(s):
    answer = 0
    s=deque(s)
    stack=[]
    flag=0
    
    for i in range(0, len(s)):
        stack.clear()
        if i!=0:
            s.append(s.popleft())
        for k in s:
            if k in ['[', '(', '{']:
                stack.append(k)
                flag=1
            else:
                if len(stack)==0:
                    continue
                if k==']' and stack[-1]=='[':
                    stack.pop()
                elif k==')'and stack[-1]=='(':
                    stack.pop()
                elif k=='}'and stack[-1]=='{':
                    stack.pop()
        if len(stack)==0 and flag==1:
            answer+=1
    return answer

0개의 댓글