YeJinii
2021. 5. 2. 19:39
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/64065
코딩테스트 연습 - 튜플
"{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1]
programmers.co.kr
문제 풀이 코드
#include <string>
#include <vector>
#include <unordered_map>
#include <cctype>
#include <iostream>
#include <algorithm>
using namespace std;
bool cmp(pair<int,int> &a, pair<int,int> &b){
return a.second>b.second;
}
vector<int> solution(string s) {
unordered_map<int,int> cnt;
int num=0;
for(int i=0; i<s.length(); i++){
if(isdigit(s[i])){
num*=10;
num+=((int)s[i]-48);
}
else{
//if(num){cout<<num;}
cnt[num]++;
num=0;
}
}
vector<pair<int,int>> sort_before;
for(auto c: cnt){
if(c.first!=0&&c.second>0){
sort_before.push_back(c);
}
}
sort(sort_before.begin(), sort_before.end(), cmp);
vector<int> answer;
for(int i=0; i<sort_before.size(); i++){
answer.push_back(sort_before[i].first);
}
return answer;
}