백준 2910 빈도 정렬 C++
- C
- 2023. 4. 12.
백준 2910 빈도 정렬.
백준 2910번 "빈도 정렬" 문제의 자세한 내용은 글 하단의 문제 링크를 참고하세요.
2910번 문제에 주어지는 입력 및 예시
입력:
5 2
2 1 2 1 2
출력:
2 2 2 1 1
코드
백준 2910번 "빈도 정렬" 문제의 코드입니다.
#include <bits/stdc++.h>
using namespace std;
map<int, int> mp,mc;
bool cmp(pair<int,int> a,pair<int,int> b){
if(a.first==b.first){
return mc[a.second]< mc[b.second];
}
return a.first>b.first;
}
int main(){
ios_base::sync_with_stdio(false); cin.tie(0);cout.tie(0);
vector<pair<int,int>> p;
int n,c,x;
cin>>n>>c;
for(int i=0;i<n;i++){
cin>>x;
mp[x]++;
if(mc[x]==0)//map은 할당 안된값 0으로 초기화되어있음.
mc[x]=i+1;
}
for(auto v:mp)
p.push_back({v.second,v.first});
sort(p.begin(),p.end(),cmp);
for(auto v: p){
for(int i=0;i<v.first;i++)
cout<<v.second<<" ";
}
return 0;
}
실행
위의 코드를 예제의 입력을 넣어 실행했을 때의 결과입니다.
'C' 카테고리의 다른 글
백준 20413 MVP 다이아몬드 (Easy) C++ (1) | 2023.04.13 |
---|---|
백준 4659 비밀번호 발음하기 C++ (0) | 2023.04.12 |
백준 13701 중복 제거 C++ (0) | 2023.04.12 |
백준 15719 중복된 숫자 C++ (0) | 2023.04.12 |
백준 2828 사과 담기 게임 C++ (0) | 2023.04.12 |