일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Expo
- 스탠실 버퍼 사용
- react-native
- react
- c++ 정보은닉
- react native ios 기기 연결
- javascript
- react native typescript
- react native typescript navigation
- node.js
- react native 타입스크립트
- react native accessible
- 리액트 네이티브 설치 오류
- react native typescript navigate
- stencil buffer
- 스탠실 버퍼 튜토리얼
- C++
- 싸이월드
- GitHub
- html
- 스탠실 버퍼 시작
- react native mac
- node
- react native
- unity stencil buffer
- cyworld
- c++ using
- 벡터와 리스트의 차이
- CSS
- 리액트 네이티브 맥
Archives
- Today
- Total
혀니의 이거저거 뿌시기
9012 괄호 본문
728x90
문자열 문제
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
T = int(input())
stack = []
answer = []
state = 1
lst = [[] for _ in range(T)]
for i in range(T):
str = input()
lst[i] = list(str)
for i in range(T):
state = 1
stack = []
for j in range(len(lst[i])):
if lst[i][j] == '(':
stack.append(1)
elif lst[i][j] == ')':
if len(stack) == 0:
state = 0
break
stack.pop()
if len(stack) == 0 and state == 1:
answer.insert(i,'YES')
else:
answer.insert(i,'NO')
for i in range(len(answer)):
print(answer[i])
(()) 같은 괄호형식을 만족하는지 묻는 문제였는데...
문제 유형이 stack으로 구분되어있어서
아! push pop을 하다가 pop할 것이 없거나 남았을 때 NO로 출력, 나머지는 YES로 출력하면 되는구나! 깨달았다.
열심히 이중 리스트도 만들고
append, len, pop, insert등을 통해서 해당하는 스택과 리스트에 값을 넣고 빼는 것을 구현하는듯 했다..
답은 맞았으나!
스택이라는 개념만 적용하면 되고 그냥 정수로 하는것이 더 편하다는 것을 깨달았다.
new = 0
for _ in range(N):
VPS = input()
new = 0
li = list(map(str,str(VPS)))
for i in li:
if i == '(':
new+=1
elif i == ')':
new -=1
if new < 0:
break
if new != 0:
print("NO")
else:
print("YES")
like this...
더욱 쉬운 방법이 뭐가 있나 이런식으로 생각해 보자.
728x90
'알고리즘 공부(C++)' 카테고리의 다른 글
10845 큐 (0) | 2022.08.16 |
---|---|
1929 소수 구하기 (0) | 2022.08.16 |
17478 재귀함수가 뭔가요? (0) | 2022.08.14 |
1026 보물 (0) | 2022.08.13 |
1476 날짜 계산 (0) | 2022.08.12 |