[개념]스택
[문제]
![](https://blog.kakaocdn.net/dn/buoYLx/btq0fljQzHB/mIroEM4hOSsF4mwnONdzc1/img.png)
![](https://blog.kakaocdn.net/dn/cfK5XY/btq0c2Fo6FS/F1KKiLnyeF0yIGgUGDhtok/img.png)
[문제해결방법]
1. 값을 받았을 때 그 괄호를 리스트에 저장한다.
2. 그 리스트에 있는 괄호를 차례대로 확인하며 계산한다.
3. 만일 괄호가 제대로 되어 있지 않을경우 값이 -1이 나오게 하여 합한 값이 0보다 작게 만들고 NO로 출력하게 만든다.
[코드리뷰]
import sys n= int(sys.stdin.readline()) for i in range(n): ps = sys.stdin.readline() c=list(ps) #받은 괄호를 리스트에 저장합니다. sum =0 for i in c: if i =="(": sum +=1 #리스트 안에 열리는 가로가 있으면 더하고 elif i ==")": sum -= 1 #닫히는 가로이면 뺀다 if sum<0: print('NO') break # print(sum) if sum > 0: print('NO') elif sum==0: print('YES')
[결과]
![](https://blog.kakaocdn.net/dn/nzgCE/btq0fkZAbtn/k0k4xQmfnOICnkya59ApS1/img.png)
'알고리즘' 카테고리의 다른 글
[알고리즘]두 수 비교하기(백준 1330/파이썬) (0) | 2021.03.18 |
---|---|
[알고리즘]통계학(백준 2108/파이썬) (0) | 2021.03.17 |
[알고리즘] 제로(백준 10773/파이썬) (0) | 2021.03.16 |
[알고리즘]스택(백준 10828/파이썬) (0) | 2021.03.16 |
[알고리즘]나무 자르기(백준 2905/파이썬) (0) | 2021.03.14 |