ans=[]
while True:
arr=input()
st=[]
cnt=0
if '-' in arr:
break
for i in arr:
if i=='{':
st.append('{')
else:
if st:
st.pop()
else:
cnt+=1
st.append('{')
cnt+=len(st)//2
ans.append(cnt)
for i in range(len(ans)):
print(i+1, '. ', ans[i], sep='')
<코드 설명>
while문을 이용해 무한반복해주며, arr를 input받는다.
입력의 마지막 줄은 '-'가 한 개 이상 주어지기 때문에 '-'가 arr에 포함되면 break해준다.
arr의 현재 문자가 '{'일 때, st(스택)에 이를 append해준다.
arr의 현재 문자가 '}'일 때, st가 비어있지 않을 때 pop을 해준다. st가 비어있을 때는 안정적이지 않은 상태이므로 cnt값을 1 증가시켰고, 안정적이지 않은 상태를 바꿔주기 위해 '{'를 st에 append해준다.
st의 길이/2를 cnt에 더해주고, 이렇게 구한 cnt값을 ans배열에 추가시켜주었다.
ans배열의 원소를 모두 출력시켜주었다.
<실행 결과>
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ] 1543 문서 검색 (0) | 2022.11.13 |
---|---|
[BOJ] 3077 임진왜란 (0) | 2022.11.13 |
[BOJ] 14425 문자열 집합 (0) | 2022.11.06 |
[BOJ] 16499 동일한 단어 그룹화하기 (0) | 2022.11.06 |
[BOJ] 13417 카드 문자열 (0) | 2022.11.06 |