Level 0. 문자열 잘라서 정렬하기
굉장히 기초적인 파싱 문제인데 이 문제 때문에 하루를 꼬박 썼다..
분명 알고리즘엔 문제가 없는데 도대체 왜 안 될까 생각하며 다른 파싱 기법도 써봤는데 계속 안 됐다.
결국은 set이 문제였다는 걸 깨달았다..
set이 중복을 허용하지 않는다는 걸 깜빡하고 있었다..
#include <iostream>
#include <vector>
#include <set>
using namespace std;
vector<string> solution(string myString)
{
multiset<string> mset;
size_t last = 0;
do
{
size_t first = myString.find_first_not_of('x', last);
last = myString.find('x', first);
if (first != string::npos)
mset.emplace(myString.substr(first, last - first));
}
while (last != string::npos);
return vector<string>(mset.begin(), mset.end());
}
'자료구조 & 알고리즘 > 프로그래머스' 카테고리의 다른 글
Level 0. 문자 개수 세기 (0) | 2023.05.24 |
---|---|
Level 2. 연속된 부분 수열의 합 (0) | 2023.05.23 |
Level 0. 세로 읽기 (0) | 2023.05.21 |
Level 2. 구명보트 (1) | 2023.05.20 |
Level 2. N개의 최소공배수 (0) | 2023.05.19 |