본문 바로가기
백준 풀이

[백준/BOJ] - 4949번 python 풀이 - stack 개념

by 반오십 코린이 2022. 11. 22.
728x90


Key Point

1. stack 개념을 적용하여 ')' 이나 ']'이 확인 될 경우 리스트의 마지막을 가르키는

lists[-1] 문법을 활용하여  '('이나 '['이 알맞은 쌍으로 있을 경우 pop 시켜버린다.

 

2. result list에 아무 값도 없을 때 ')' or ']'이 확인 될 경우 no 출력.

 

3. 한번 값을 출력하면 result list를 clear 해주자. + count 값도 0으로 초기화

 

4. '.'이 입력 됐을 때 프로그램 종료되는 것을 인지하자!


n = ''
count = 0
result1=[]

while n!='.':
  n=input()
  if n=='.':
    exit(0)
  for i in n:
    if i=="(" or i=="[":
      result1.append(i)

    elif i==")": # result 비었는데 )가 먼저 들어올 경우
      if len(result1)==0:
        count=-1
        break
      if result1[-1] == "(":
        result1.pop()
      else: #'['
        count = -1
        break
    
    elif i=="]": 
      if len(result1)==0:
        count=-1
        break
      if result1[-1] == "[":
        result1.pop()
      else:
        count = -1
        break
        
  if count==-1 or len(result1)!=0:
    print("no")
    count = 0
    result1.clear()  
  else:
    print("yes")
728x90