반응형
문제
https://www.acmicpc.net/problem/9012
코드
import sys
input = sys.stdin.readline
n = int(input())
for _ in range(n):
text = list(input())
sum = 0
for i in text:
if i == '(':
sum += 1
elif i == ')':
sum -= 1
if sum < 0:
print('NO')
break
if sum > 0:
print('NO')
elif sum == 0:
print('YES')
설명
괄호의 완성 조건을 생각해서 따지면 되는 문제이다.
우선 '(' 일 경우 sum 함수에 1을 더해주고,
')'일 경우 sum 함수에서 1을 빼준다.
만약 이 과정에서 sum이 0 미만으로 내려가게 됐다면 괄호의 요건을 만족하지 못했으므로,
반복문을 종료하고 NO를 출력한다.
sum이 0미만으로 내려가지 않고 반복문이 종료되었을 때,
0이라면 YES를 출력,
그렇지 않다면 괄호가 완벽하지 않으므로 NO를 출력해 준다.
반응형
'개발 연습장 > 백준 문제풀이' 카테고리의 다른 글
[파이썬, Python] 백준 1874: 스택 수열 (0) | 2023.03.09 |
---|---|
[파이썬, Python] 백준 4949: 균형잡힌 세상 (0) | 2023.03.08 |
[파이썬, Python] 백준 10773: 제로 (0) | 2023.03.06 |
[파이썬, Python] 백준 10828: 스택 (0) | 2023.03.03 |
[파이썬, Python] 백준 13305: 주유소 (0) | 2023.03.02 |