본문 바로가기

개발/algorithm

[백준 3986번] 좋은 단어 -python

문제 링크

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

 

3986번: 좋은 단어

이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에

www.acmicpc.net

풀이 

- A와 B가 교차해서 존재하면 안되고 짝수개 존재해야한다.

- 스택에서 나올 원소와 같다면 짝지어질 수 있으므로 pop

- 스택이 비었거나 스택에서 나올 원소와 같지 않나면 append 

- 최종적으로 스택에 남아있는 원소가 없다면 cnt +1 

test = int(input())
cnt = 0 

for _ in range(test):
 s  = input()
 stack = []
   
 for i in s:
  # 스택에서 나올 원소와 같다면 
  if stack and stack[-1] == i:
      stack.pop()
  else :
      stack.append(i)
      
 if not stack:
    cnt += 1 

print(cnt)