잘 정리해보자

stack - 4889번 안정적인 문자열 본문

알고리즘/백준

stack - 4889번 안정적인 문자열

토마토오이 2021. 4. 13. 14:23

 

1. 스택이 비어있을 때 '}'를 만나면 '{'로 바꿔주는 연산을 한다.

2. 주어진 문자열의 모든 문자를 순회한 결과 스택에 '{'가 남아있는 갯수를 세어 반으로 나눈다. 그러면 '{'를 지우기 위해 필요한 '}'의 갯수가 나온다.

 

python

num = 1

while True :
  cnt = 0
  line = input().rstrip()
  if line.startswith('-') : break

  stack = []; flag = True
  line_list = list(line)
  
  for txt in line_list :
    if not(stack) and txt == '}' :
      cnt += 1
      stack.append('{')
    elif txt == '}' :
      stack.pop()
    elif txt == '{' :
      stack.append(txt)

  print('{0}. {1}'.format(num,cnt + int(len(stack)/2)))
  num += 1

 

 

문제 : www.acmicpc.net/problem/4889

'알고리즘 > 백준' 카테고리의 다른 글

stack - 4949번 균형잡힌 세상  (0) 2021.04.13
stack - 9012번 괄호  (0) 2021.04.13
Comments