본문 바로가기

programming/algorithm

[algorithm] 백준 9012 - 괄호

[algorithm] 백준 9012 - 괄호

 

안녕하세요. 심심한 코딩쟁이입니다.

 

오늘은 백준 9012번 문제 - 괄호 의 풀이를 살펴보도록 하겠습니다.

 

풀이에 사용한 언어는 Python3 입니다.

 

문제 해석과 풀이 다 함께 살펴보시죠.

 

 

algorithm
알고리즘


백준 BAEKJOON 9012

 

백준 9012번 괄호 문제 보러가기

 

반응형

 

문제 해석

 

문제에서 괄호가 나열된 문자열이 입력값으로 주어지는데 괄호의 열고 닫힘이 올바른 문자열인지를 판단하여

YES, NO로 출력하는 문제입니다.

힌트 : 스택을 이용해보면 어떨가요? 예를 들어 ' ( '를 만났을 때는 PUSH, ' ) '를 만났을 때는 POP

 

풀이

 

# 9012 괄호

N = int(input())

for _ in range(N):
    
    stack = []
    ps = input()
    
    for p in ps:
        if p == '(':
            stack.append(p)
            
        elif p == ')':
            if stack:
                stack.pop()
            else:
                print("NO")
                break
            
    else: # 위 for 문이 문제없이 끝났을 경우
        if not stack: # 스택이 비어있으면
            print("YES")
        else: # 스택이 안 비어있으면
            print("NO")

 

풀이 해석 및 팁

 

스택을 이용해서 최종적으로 스택에 아무것도 없으면 올바른 괄호 문자열이므로 YES를 출력하고

하나라도 요소가 남아있다면 NO를 출력하면 문제가 해결됩니다.

여기까지 백준 9012번 괄호 문제 풀이였습니다.


이번 문제의 정답률은 45% 정도입니다.

 

궁금하신 점은 댓글로 남겨주시기 바랍니다.

 

감사합니다.

반응형