문제 해결을 위한 과정
이 문제의 경우 문자열 카테고리의 문제입니다. 괄호가 쌍으로 맞게 이루어져 있다면 YES를 출력 그렇지 않다면 NO를 출력하면 됩니다. count = 0을 선언한 후 "("인 경우 count += 1을 ")"인 경우 count -= 1을 해준다면 쉽게 해결할 수 있습니다.
1) 만일 count가 음수라면 )로 시작하거나 )의 개수가 (에 비해 더 많은 경우 즉 짝이 맞지 않으므로 NO를 출력합니다.
2) 만일 count가 0이 아닌 자연수인 경우 (의 개수가 )에 비해 더 많은 경우 즉 짝이 맞지 않으므로 NO를 출력합니다.
3) 만일 count가 0이라면 짝이 맞으므로 YES를 출력합니다. (단 1이 아닌 경우 )( 같은 경우를 제외시켜주기 위함)
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
tc = int(input())
for i in range(tc):
a = input()
ans = 0
for i in range(len(a)):
if a[i] == "(":
ans += 1
elif a[i] == ")":
ans -= 1
if ans < 0:
break
if ans == 0:
print("YES")
else:
print("NO")
|
cs |
'알고리즘 > 백준' 카테고리의 다른 글
백준 알고리즘 13459: 구슬 탈출(Python) (0) | 2021.02.19 |
---|---|
백준 알고리즘 13460: 구슬 탈출 2 (Python) (1) | 2021.02.19 |
백준 알고리즘 9095: 1, 2, 3 더하기(Python) (0) | 2021.02.06 |
백준 알고리즘 2468: 안전 영역(Python) (2) | 2021.02.05 |
백준 알고리즘 11724: 연결 요소의 개수(Python) (0) | 2021.02.05 |