728x90
처음에는 ( 가 나온다면 +1을 해주고 ) 가 나온다면 -1 을 해주어서 마지막 총합이 0이 나오면 YES를 출력해주고
총합이 0이 아니라면 NO를 출력해주려고 했다.
하지만 ( ) ) ( ( ) 같은 경우 가운데 ' ) ( ' 때문에 합이 0이 나오지만 VPS 즉 괄호가 닫히지 않는다.
그래서 생각해본 방법은
입력값을 문자열로 받은 다음 ' ( ) ' 가 있다면 While 문과 replace를 사용하여 지속해서 ' ( ) ' 를 삭제해주고 마지막까지 문자열의 길이가 0 이 아니라면 N0, 0이라면 YES를 출력해 주는 것이다
n = int(input())
for i in range(n):
data = input()
answer = True
while answer == True: #while문을 이용해 '()' 가 사라질때까지 반복
if '()' in data:
data = data.replace('()','') #replace를 이용해 '()'를 삭제
elif len(data) == 0:
print('YES')
answer = False
else:
print('NO')
answer = False
'Algorithm' 카테고리의 다른 글
백준 알고리즘 파이썬(Python) 1158번 요세푸스 문제 (0) | 2021.07.28 |
---|---|
백준 알고리즘 파이썬(Python) 11279번 최대 힙 (0) | 2021.07.28 |
백준 알고리즘 파이썬(Python) 5397번 키로거 (0) | 2021.07.19 |
백준 알고리즘 파이썬(Python) 1449번 수리공 항승 (0) | 2021.07.06 |
백준 알고리즘 파이썬(Python) 16162번 가희와 3단 고음 (0) | 2021.06.12 |