반응형
알고리즘 분류
- 자료 구조
- 문자열
- 스택
SOLUTION
import sys
while True:
s = sys.stdin.readline().rstrip()
if s == '.': # .이 입력으로 들어오기전까지 while문 반복
break
string = []
state = True
for i in s:
if i == '(' or i == '[': # 괄호와 '.' 을 제외한 나머지 문자는 고려X
string.append(i)
elif i == ')':
if string == [] or string[-1] == '[': # string이 비었거나 string에 가장 마지막에 들어간 값이 '(' 이 아닌 '[' 일 때
state = False # 균형이 일어나지 않으므로 state = False
break
elif string[-1] == '(':
string.pop() # 균형을 이루었으므로 string안의 '(' 를 pop하여 제거
elif i == ']':
if string == [] or string[-1] == '(': # 위와 같은 방법
state = False
break
elif string[-1] == '[':
string.pop()
if state == True and string == []: # 위 조건을 만족하면 yes 출력
print('yes')
else:
print('no')
'코딩테스트 대비 > 단계별 코딩 테스트 준비(27일 과정)' 카테고리의 다른 글
[큐/Python] 1021번: 회전하는 큐 - 효과는 굉장했다! (0) | 2022.02.11 |
---|---|
[큐/Python] 2164번: 카드2 - 효과는 굉장했다! (0) | 2022.02.11 |
[스택/Python] 17298번: 오큰수 - 효과는 굉장했다! (0) | 2022.02.11 |
[정렬/Python] 18870번: 좌표 압축 - 효과는 굉장했다! (0) | 2022.02.11 |
[정렬/Python] 10814번: 나이순 정렬 - 효과는 굉장했다! (0) | 2022.02.11 |