결과 : 303.2점 / 400점
순위 : 45등 / 총 참가자 431명
문자열 하나를 연속된 문자를 기준으로 자르는 문제.
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;
}