-
백준 9102번 - 괄호BOJ-Algorithm 2022. 1. 3. 23:50
https://www.acmicpc.net/problem/9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
n = int(input()) arr = [] for i in range(n): arr.append([input()]) for test in arr: for question in test: stack = [] flag = "YES" for word in question: if word == '(': stack.append('O') else: if not stack: flag = "NO" break else: stack.pop(len(stack)-1) if flag=="NO": print(flag) elif flag=="YES" and not stack: print(flag) else: print("NO")
스택 문제다.
문제별로 stack을 초기화해 준 다음 flag를 True로 설정해 놓고 문자열 데이터를 확인해서 flag가 False로 바뀌지 않고, stack도 모두 정상적으로 비워져 있으면 YES를 반환하고 그렇지 않으면 NO를 반환하는 유형의 문제다.
고려해야 할 조건은
- 스택에 들어가 있는 괄호 '(' 가 없는데 ')' 가 입력된 경우가 있는가?
- 문자열을 전부 돌았을 때, 스택이 비워져 있는가?
정도가 될 듯 하다.
'BOJ-Algorithm' 카테고리의 다른 글
백준 4949 - 균형잡힌 세상 (0) 2022.01.04 백준 10773 - 제로 (0) 2022.01.04 백준 1769번 - 3의 배수 (0) 2022.01.03 백준 10867번 - 중복 빼고 정렬하기 (0) 2022.01.02 백준 1181 - 단어 정렬 (0) 2022.01.02