티스토리 뷰

반응형

풀이 과정을 떠올리는 건 쉬웠지만 시간이 너무 오래 걸리는 코드를 짜는 바람에 효율성 테스트 통과를 하지 못해서...

힌트 참고해서 다른 방법으로 다시 짜서 통과한 문제 ㅠ.ㅠ 

 


문제의 조건

 

1. string s가 주어짐

 

2. 앞뒤로 두개가 같은 알파벳이면 제거할 수 있다. 

같은 알파벳 두개를 제거하고 나면 남은 것들끼리 이어붙여서 또 짝지어 두개가 같으면 제거하고 

남은것들끼리 이어붙이고.... 를 반복해서

모든 알파벳이 제거되면 1

제거되지 않으면 0 리턴

 


 

#include <iostream>
#include<string>
#include <algorithm>
using namespace std;

int solution(string s)
{
    int answer = -1;
    vector<char> tmp;
    for (int i = 0; s.length() > i; i++)
    {
        if (!tmp.empty() && tmp.back() == s[i])
            tmp.pop_back();
        else
            tmp.push_back(s[i]);
    }

    if (tmp.empty()) answer = 1;
    else answer = 0;

    return answer;
}
반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함