LV 2: 괄호 회전하기

ewillwin·2023년 9월 7일
0

문제 링크

LV 2: 괄호 회전하기


구현 방식

  • stack을 이용하는 무난한 구현문제이다
  • list 회전은 그냥 deque의 rotate 메소드를 사용했다 (반시계방향: .rotate(-1))
  • 처음에 TC 13번에서 통과가 되지 않았는데, 마지막에 stack이 비어있는 지를 확인해줘야했다

코드

from collections import deque

def solution(s):
    N = len(s)
    
    answer = 0
    for x in range(N):
        stack = []; pos_flag = True
        for i in range(N):
            if s[i] == ']':
                if stack:
                    if stack.pop() != '[': pos_flag = False; break
                else: pos_flag = False; break
            elif s[i] == '}':
                if stack:
                    if stack.pop() != '{': pos_flag = False; break
                else: pos_flag = False; break
            elif s[i] == ')':
                if stack:
                    if stack.pop() != '(': pos_flag = False; break
                else: pos_flag = False; break
            else:
                stack.append(s[i])
        s = deque(s); s.rotate(-1); s = list(s)
        
        if pos_flag and not stack: answer += 1
        
    return answer
profile
💼 Software Engineer @ LG Electronics | 🎓 SungKyunKwan Univ. CSE

0개의 댓글