반응형
포인트
1. 튜플이라는 문제지만 튜플을 사용하지는 않습니다.
2. 문제의 핵심은 문자열 처리를 할 수 있는가 입니다. 저는 끝문자와 처음 문자를 그냥 없앴습니다.
🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다.
#include <string>
#include <vector>
#include <set>
#include <algorithm>
using namespace std;
vector<int> solution (string s) {
vector<int> answer;
s.erase (s.begin ());
s.erase (s.end () - 1);
vector<int> temp;
vector<pair<int, vector<int>>> vc;
int num=0;
for (int i=0; i < s.size (); i++) //처음의 { 과 }는 무시
{
if (s[i] == '{') continue; // 그냥 통과
if (s[i] == '}') { //완성됐으니깐
temp.push_back (num);
vc.push_back ({ temp.size (), temp });
num=0;
temp.clear ();
}
else if (s[i] == ',') {
if (s[i - 1] == '}') continue;
else {
temp.push_back (num);
num=0;
}
}
else {
num*=10;
num+=(s[i] - '0');//숫자로 바꾸고 넣어주는 것
}
}
sort (vc.begin (), vc.end ()); //오름차순 정렬
set<int> res;
for (auto p : vc) {
for (auto ele : p.second) {
if (res.find (ele) == res.end ()) { //만일 없으면
res.insert (ele);
answer.push_back (ele);
}
}
}
return ;
}
반응형
'알고리즘' 카테고리의 다른 글
[알고리즘] 가장 큰 수 (0) | 2020.10.22 |
---|---|
[알고리즘] 전화번호 목록 (0) | 2020.10.22 |
[알고리즘] c++ cpp 올바른 괄호 (0) | 2020.10.22 |
[알고리즘] c++ cpp 카카오프렌즈컬러링북 (0) | 2020.10.21 |
[알고리즘] c++ cpp 하샤드 수 (0) | 2020.10.21 |
댓글