티스토리 뷰
문제 링크
풀이
처음과 맨 끝에 '{', '}'을 제거하고 '{'를 만나면 안의 숫자들을 map에 할당한 후 map을 순회하면서 개수가 1부터 순서로 하여 answer에 없는 숫자를 넣어주었다.
더보기
#include <string>
#include <vector>
#include <map>
#include <iostream>
#include <string>
using namespace std;
vector<int> solution(string s) {
vector<int> answer;
map<int, vector<int>> count_set;
map<int, vector<int>>::iterator iter;
vector<int> temp;
// 처음과 끝의 {} 제거
s.erase(s.begin());
s.pop_back();
// Map 할당
string element;
for(int i=0, gradient=0, count = 1; i<s.length(); i++)
{
if(s[i]=='{') gradient++;
else
{
if(s[i]=='}')
{
temp.push_back(stoi(element));
count_set[temp.size()] = temp;
temp.clear();
element.clear();
gradient--;
}
else if(gradient==1)
{
if(s[i]==',')
{
temp.push_back(stoi(element));
element.clear();
}
else{ element+=s[i];}
}
// else{} // },{
}
}
// map 순회
for(iter = count_set.begin(); iter!=count_set.end(); iter++)
{
// for(int i=0; i<iter->second.size(); i++)
// cout << "[" << i << " : " << iter->second[i] << "]";
// cout<<endl;
int i;
for(i=0; i<iter->second.size(); i++)
{
int j;
for(j=0; j<answer.size(); j++)
{
if(iter->second[i]==answer[j]) break;
}
if(j==answer.size()) break;
}
answer.push_back(iter->second[i]);
}
return answer;
}
728x90
반응형
'Programmers Solutions > previous' 카테고리의 다른 글
수식최대화(2020 카카오 인턴십) (0) | 2020.07.31 |
---|---|
폰켓몬(찾아라 프로그래밍 마에스터) (0) | 2020.07.31 |
단체사진 찍기(2017 카카오코드 본선) (0) | 2020.07.31 |
괄호 변환(2020 카카오 블라인드 채용) (0) | 2020.07.31 |
문자열 압축(2020 카카오 블라인드 채용) (0) | 2020.07.31 |
댓글