접근
VPS가 될 수 있는 조건만 잘 생각한다면 아주 쉽게 풀 수 있는 문제이다.
VPS가 될 수 있는 조건은 다음과 같다.
- 문자열에서 '(' 문자와 ')' 문자의 개수가 같아야 한다.
- 문자열을 앞에서 부터 탐색할 때 ')'의 개수가 '(' 개수보다 많아지는 순간이 있으면 안된다. (예. '(())))(((())' 는 '(' 과 ')' 문자 개수가 같지만 VPS가 아니다.
코드
import sys
n = int(sys.stdin.readline())
for i in range(n):
m = list(map(str, sys.stdin.readline().rstrip()))
vps = 0
for j in range(len(m)):
if vps < 0:
break
if m[j] == '(':
vps += 1
else:
vps -= 1
if vps == 0:
print('YES')
else:
print('NO')
더 생각해 볼 것?
...
코드나 내용 관련 조언, 부족한 점 및 질문 언제든 환영합니다!
반응형
'코딩 > 백준 (Python)' 카테고리의 다른 글
백준 19298번: 오큰수 (Python) (0) | 2021.04.01 |
---|---|
백준 1874번: 스택 수열 (Python) (0) | 2021.04.01 |
백준 2004번: 조합 0의 개수 (Python) (0) | 2021.03.31 |
백준 2981번: 검문 (Python) (0) | 2021.03.31 |
백준 1931번: 회의실 배정 (Python) (0) | 2021.03.30 |
최근댓글