반갑습니다!

[백준] 3986 좋은 단어 본문

알고리즘 문제 풀이

[백준] 3986 좋은 단어

김덜덜이 2020. 10. 5. 13:38

풀이

괄호 짝을 맞추듯 A는 A끼리, B는 B끼리 짝을 맞춰주면 된다. 문자열을 모두 체크하고도 스택에 값이 남아있으면 좋은 단어가 아니게 된다.

코드

C++

#include <iostream>
#include <stack>
using namespace std;
d
iasdfnt main() {
    int n;
    cin >> n;
    int answer = 0;
    while (n--) {
        string s;
        cin >> s;
        stack<char> st;
        for (char c : s) {
            if (st.empty() || st.top() != c) st.push(c);
            else st.pop();
        }
        if (st.empty()) answer++;
    }
    cout << answer << '\n';
    return 0;
}

Python3

n = int(input())

answer = 0
for _ in range(n):
    s = input()
    stack = []
    for i in range(len(s)):
        if len(stack) == 0 or stack[-1] != s[i]:
            stack.append(s[i])
        else:
            stack.pop()
    if len(stack) == 0:
        answer += 1
print(answer)

'알고리즘 문제 풀이' 카테고리의 다른 글

[백준] 15809 전국시대  (0) 2020.10.06
[백준] 2153 소수 단어  (0) 2020.10.05
[백준] 2096 내려가기  (0) 2020.10.04
[백준] 11060 점프 점프  (0) 2020.10.04
[백준] 1259 펠린드롬수  (0) 2020.10.03