결과 : 303.2점 / 400점

순위 : 45등 / 총 참가자 431명

리더보드

Untitled

1번 문제.

문자열 하나를 연속된 문자를 기준으로 자르는 문제.

ex ) "abccde" 가 있으면 "ab" , "de"로 자름.

ex2 ) "aabccdee"가 있으면 "", "b", "d", "" 로 자름.

해설 :

해당 문자열의 모든 문자에 일대일 대응하는 배열 mask로 연속된 부분은 1로 마스킹해둠.

마스킹이 안된 부분을 전부 ans 벡터에 추가해주면 끝.

단순 구현 문제.

#include <string>
#include <vector>

using namespace std;

vector<string> solution(string s) {
    vector<string> answer;
    int mask[1010] = {0,};
    for(int i=1; i<s.length(); ++i){
        if(s[i] == s[i-1]){
            mask[i] = 1;
            mask[i-1] = 1;
        }
    }
    answer.push_back("");
    int idx=0;
    for(int i=0; i<s.length(); ++i){
        if(mask[i]){
            answer.push_back("");
            idx++;
            while(mask[i]) ++i;
            i-=1;
            continue;
        }
        answer[idx].push_back(s[i]);
    }
    return answer;
}