[문제]
programmers.co.kr/learn/courses/30/lessons/64065
[풀이]
앞쪽에 위치한 원소일수록 집합에 가장 많이 포함되어 있어
따라서 원소가 나온 내림차순 횟수를 정렬하여
가장 많이 나타난 원소부터 answer에 insert
[코드]
#include <string>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
bool cmp(pair<int,int> a, pair<int,int> b) {
if (a.second > b.second) return true;
return false;
}
vector<int> solution(string s) {
vector<int> answer;
map<int,int> m;
string num = "";
for(int i=1;i<s.size()-1;i++)
{
if(s[i] == ',' || s[i] == '}' || s[i]=='{')
{
if(num=="") continue;
m[stoi(num)]++;
num="";
}
else num+=s[i];
}
vector<pair<int,int>> v( m.begin(), m.end() );
sort(v.begin(),v.end(),cmp);
for(int i=0;i<v.size();i++) answer.push_back(v[i].first);
return answer;
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 호텔 방 배정 (C++) (0) | 2021.04.30 |
---|---|
[프로그래머스] 징검다리 건너기(C++) (0) | 2021.04.28 |
[프로그래머스] 수식 최대화(C++) (0) | 2021.04.23 |
[프로그래머스] 키패드 누르기(C++) (0) | 2021.04.18 |
[프로그래머스] 소수 찾기 (0) | 2020.11.10 |