반응형
https://www.acmicpc.net/problem/4949
import sys
import string
ssr = sys.stdin.readline
char = string.ascii_letters+' '+'.'
while 1:
sentence = ssr().rstrip()
if sentence=='.':
break
for i in char:
sentence = sentence.replace(i,'')
check = sentence
while 1:
if sentence == '':
print('yes')
break
sentence = sentence.replace('()','')
sentence = sentence.replace('[]','')
if sentence == check:
print('no')
break
else:
check = sentence
예전에 아마 이번 문제랑 비슷한 문제를 푼 적이 있었던 것 같습니다. 그 때는 전부 괄호로만 이뤄진 문자열이 입력으로 주어졌는데 이번에는 다른 문자들도 섞여있죠. 다른 문자들을 전부 지워버리면 괄호로만 이뤄진 문자열이 되므로 그냥 과정이 하나 더 추가되는 것 뿐이니 쉽게 해결하실 수 있을겁니다.
저는 변환이 이뤄진 다음에도 원래 문자열과 같다면 no를, 전부 변환이 완료되었다면 yes를 출력하는 방식으로 코드를 짰는데요. 예전에 짰던 건 엄청 비효율적이었던 것 같은데 그래도 성장은 했구나 하는 생각이 듭니다.
이제 슬슬 클래스 2 문제들도 끝이 보이는데요. 빨리 힘내서 풀어야겠습니다.
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ][Python]백준 15829 풀이 (0) | 2022.02.20 |
---|---|
[BOJ][Python]백준 10773 풀이 (0) | 2022.02.20 |
[BOJ][Python]백준 2805 풀이 (0) | 2022.02.19 |
[BOJ][Python]백준 1966 풀이 (0) | 2022.02.19 |