인프런 커뮤니티 질문&답변

dkswhdgur1209님의 프로필 이미지
dkswhdgur1209

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

1-M

1-M 질문 드립니다!

작성

·

187

0

스택 말고 vector를 이용해서 이렇게 풀었는데 꼭 스택을 사용 해야 하는 건가요??

#include <iostream>
#include <vector>
using namespace std;
int n;
int cnt = 0;
int main() {
    cin >> n;
    for (int i = 0; i < n; i++) {
        string s;
        cin >> s;
        vector<char> arr;
        for (int j = 0; j < s.length(); j++) {
            if (arr.empty() || arr.back() != s[j]) {
                arr.push_back(s[j]);
            }
            else {
                arr.pop_back();
            }
        }
        if (arr.empty()) cnt++;
    }
    cout << cnt;
    return 0;
}

답변 1

1

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 ㅎㅎ

vector로 풀어도 무방합니다.

수강생님 코드 - back()의 경우 시간복잡도도 O(1)이기 때문에 효율성도 좋습니다. ㅎ




또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


dkswhdgur1209님의 프로필 이미지
dkswhdgur1209

작성한 질문수

질문하기