상세 컨텐츠

본문 제목

[프로그래머스] 괄호 회전하기

Algorithm

by 쑤야. 2023. 12. 15. 14:38

본문

접근


  • 괄호 문제에서 올바른 괄호인지 판단하려면 스택 활용
  • 문자열 회전이 필요하므로 이중 반복문 활용

 

로직


  • i는 시작점을 나타내는 인덱스, j는 현재 점검하고 있는 원소 인덱스
  • 스택의 마지막 원소와 현재 원소를 합친 문자열이 (), [], {} 에 해당하는 올바른 괄호인지 확인
  • 반복문이 종료된 후 스택이 비어있다면 올바른 괄호로 result 값 1 증가, 비어있지 않으면 올바르지 않은 괄호

 

코드


def solution(s):
    
    s = list(s)
    bracket = ["()","[]","{}"]
    result = 0
    
    for i in range(0, len(s)):
        
        stack = [s[i]]
        
        j = 0 if i+1 == len(s) else i+1
        
        while j != i:
            
            if len(stack) != 0 and (stack[-1]+s[j] in bracket):
                stack.pop()
            else:
                stack.append(s[j])
                
            j = 0 if j+1 == len(s) else j+1
            
        if len(stack) == 0:
            result += 1
    
    return result

관련글 더보기