Python
(python) 백준 균형잡힌 세상 - re 정규 연산 풀이
휘휘o
2020. 6. 24. 10:21
문자열에서 괄호가 짝이 맞는지 확인하는 문제 ( [ ) ] 이렇게 되어있으면 안된다.
처음에는 (, [에 따라 각각 스택에 넣어서 문제를 풀었지만 맞은 사람중 정규 연산으로 푼 사람이 있어 시도해 봤다.
re.sub 사용법
re.sub(1, 2, 3)
1. 찾을 특정 문자열 패턴
2. 찾은 String.을 바꿀 String 값
3. 찾을 대상
알고리즘
1. re.sub를 사용해 괄호 외 모든 문자들을 제거한다.
2. 제거한 문자중 () [] 이 있으면 또 제거해준다.
3. 위 과정을 거쳤지만 전 문자열과 변함이 없다면 짝이 맞지 않는 괄호가 있으므로 no 출력
4. 문자열이 전부 소거 되었다면 yes 출력
import re
import sys
input = sys.stdin.readline
a =re.compile('[^\(\)|\[\]]')
ps = re.compile('\(\)|\[\]')
while True:
s = input().rstrip()
if s == '.': break
while s:
result = a.sub('',s)
result = ps.sub('',result)
if result == s: break
s = result
if s:
print('no')
else:
print('yes')