[BOJ]9012:かっこ
🔒 例
>> 6
>> (())())
>> (((()())()
>> (()())((()))
>> ((()()(()))(((())))()
>> ()()()()(()()())()
>> (()((())()(
NO
NO
YES
NO
YES
NO
>> 3
>> ((
>> ))
>> ())(()
NO
NO
NO
🔧 に答える
1. n = int(sys.stdin.readline().rstrip())
2. case = list(sys.stdin.readline().rstrip())
2.1 cases[i] == 여는 괄호, s.push
2.2 cases[i] == 닫는 괄호, s.pop
3. NO가 출력되는 경우, flag 활용
2.3 stack empty일 때 pop 시도
2.4 모든 괄호에 대한 연산 종료 후, stack에 값이 남아있는 경우
🔑 答案用紙
import sys
n = int(sys.stdin.readline().rstrip())
for _ in range(n):
case = list(sys.stdin.readline().rstrip())
stack = []
flag = True
for i in range(len(case)):
if case[i] == '(':
stack.append(case[i])
elif case[i] == ')':
if len(stack) == 0:
flag = False
break
else:
stack.pop()
if len(stack) != 0:
flag = False
if flag:
print('YES')
else:
print('NO')
💡 コンセプト
Reference
この問題について([BOJ]9012:かっこ), 我々は、より多くの情報をここで見つけました https://velog.io/@ohhj1999/BOJ-9012テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol