| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- 알고리즘
- 다이나믹 프록시
- OS
- 프록시
- 파이썬
- redis
- 백준
- MST
- CS
- 운영체제
- Deadlock
- 객체지향
- Reflection
- Spring
- 스프링
- 모던자바
- proxy
- spring security
- 최소 신장 트리
- 자바
- Junit5
- test
- 스프링 시큐리티
- BOJ
- 리플렉션
- 문자열
- 모던 자바 인 액션
- java
- 약수
- Python
Archives
- Today
- Total
Dev 달팽이 @_''
[파이썬] 백준 9012번 : 괄호 본문
출처 : www.acmicpc.net/problem/9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
stack을 이용하여 '(' 이 나오면 stack에 넣고 ')'가 나오면 stack에서 빼는 방법을 생각했다.
만약, stack에 아무 것도 없는데 ')'이 나오면 무조건 'NO'이므로 그런 경우에는 따로 처리해주었다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import sys
N = int(sys.stdin.readline().strip())
for _ in range(N):
s = sys.stdin.readline().strip('\n')
j = 0
stack = []
idx = 0
while(1):
if idx >= len(s):
if len(stack) != 0:
j = 1
break
if s[idx] == '(':
stack.append(idx)
idx += 1
else:
if len(stack) == 0:
j = 1
break
stack.pop()
idx += 1
if j == 1:
print('NO')
else:
print('YES')
|
cs |
'PS > Python' 카테고리의 다른 글
| [파이썬] 백준 1181번 : 단어 정렬 (0) | 2021.02.05 |
|---|---|
| [파이썬] 백준 1427번 : 소트인사이드 (0) | 2021.02.05 |
| [파이썬] 백준 11719번: 그대로 출력하기 2 (0) | 2021.02.05 |
| [파이썬] 백준 11721번 : 열 개씩 끊어 출력하기 (0) | 2021.02.05 |
| [파이썬] 백준 2438번 : 별 찍기 - 1 (0) | 2021.02.04 |