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

+ Recent posts