title: 백준 9012
date: "2021-11-11T03:00:00.169Z"
template: "post"
draft: false
slug: "백준 9012 괄호 풀이"
category: "Coding test"
tags:
문자열 내의 모든 괄호가 닫혀 있는지 확인하는 문제이다.
문제에서 의도한것은 스택을 활용하여 스택의 맨 위의 값과 들어올 값이 같으면 스택의 맨 위 값을 삭제하는 풀이인 것 같으나,
replace를 문자열 길이의 절반 만큼 반복하여 푸는 것도 가능했다. 두가지 풀이 모두 시도해보았다.
n = int(input())
for _ in range(n):
string = input()
for _ in range(int(len(string)+1)):
string = string.replace('()', '')
print('NO' if string else 'YES')
n = int(input())
for _ in range(n):
string = input()
stack = []
for alpha in string:
if stack and stack[-1]== '(' and alpha ==')':
stack.pop()
else:
stack.append(alpha)
print("NO" if stack else "YES")
둘 풀이의 속도 차이는 거의 없었다.
.