티스토리 뷰

반응형

https://www.acmicpc.net/problem/4889

 

4889번: 안정적인 문자열

입력은 여러 개의 데이터 세트로 이루어져 있다. 각 데이터 세트는 한 줄로 이루어져 있다. 줄에는 여는 괄호와 닫는 괄호만으로 이루어진 문자열이 주어진다. 문자열의 길이가 2000을 넘는 경우

www.acmicpc.net

 


⊙ 문제

⊙ 입력

⊙ 출력

⊙ 예제 입출력

⊙ 알고리즘 분류

  • 자료 구조
  • 문자열
  • 스택

 


 

⊙ 문제 접근 과정

 

스택을 활용하여 문제에 접근하였다.

 

1️⃣ 문자 중 '-'가 들어오면 바로 종료

 

2️⃣ 문자가 "{"이면 스택에 추가

 

3️⃣ "}"이고 스택에 값이 있다면 pop()

 

4️⃣ "}"이고 값이 없다면 count up 그리고 "{" 추가

 

5️⃣ 마지막에 결괏값 count+ (스택의 수)//2 출력

 


 

⊙ 문제 풀이

 

rank = 1
while True:
    stack = []
    count = 0
    inputString = input()

    if '-' in inputString:
        break

    for i in inputString:
        if i == "{":
            stack.append(i)
        else:
            if stack:
                stack.pop()
            else:
                count+=1
                stack.append('{')
    
    count+= len(stack)//2
        
    print(f'{rank}. {count}')
    rank+=1

 


⊙ 결과

 


⊙ 마무리

 

 

NONE

 

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함