문자열에서 괄호가 짝이 맞는지 확인하는 문제 ( [ ) ] 이렇게 되어있으면 안된다.
처음에는 (, [에 따라 각각 스택에 넣어서 문제를 풀었지만 맞은 사람중 정규 연산으로 푼 사람이 있어 시도해 봤다.
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')
'Python' 카테고리의 다른 글
python 내장함수 zip 다루기 (0) | 2020.07.10 |
---|---|
(python) 1717 집합의표현 - 유니온 파인드 (0) | 2020.06.30 |
(python) 14889 스타트와 링크 (0) | 2020.06.23 |
(python) 백준 14888 연산자 끼워 넣기 (0) | 2020.06.22 |
(python) int, string 형식의 input을 list형식으로 만들기 (0) | 2020.06.22 |