[백준] 3986번 좋은 단어 ★★

거북이·2023년 1월 13일
0

백준[실버4]

목록 보기
37/91
post-thumbnail

💡문제접근

  • 스택을 이용해서 해결할 수 있을 것 같다고 생각했다.
  • 단어 위로 이차형 곡선을 그어 같은 글자끼리 쌍을 짓는데 이 때 선끼리 교차하면 좋은 단어가 아니다.

💡코드(메모리 : 30980KB, 시간 : 136ms)

N = int(input())
li = []
for _ in range(N):
    li.append(input())

cnt = 0
for i in li:
    stack = []
    stack.append(i[0])
    for j in range(1, len(i)):
        if len(stack) == 0:
            stack.append(i[j])
        else:
            if i[j] == "A":
                if stack[-1] == "A":
                    stack.pop()
                else:
                    stack.append(i[j])
            elif i[j] == "B":
                if stack[-1] == "B":
                    stack.pop()
                else:
                    stack.append(i[j])
    if len(stack) == 0:
        cnt += 1
print(cnt)

💡소요시간 : 20m

0개의 댓글