2910번

seuls2·2023년 3월 27일
0

BOJ

목록 보기
18/55

2910

#include <unordered_map>
#include <vector>
#include <algorithm>
using namespace std;

bool compare(pair<int, pair<int, int>> a, pair<int, pair<int, int>> b) {
	if (a.second.first == b.second.first) {
		return a.second.second < b.second.second;
	}
	else {
		return a.second.first > b.second.first;
	}
	
}

int main() {
	int n, c;
	unordered_map<int, pair<int, int>> m;
	cin >> n >> c;
	for (int i = 0; i < n; i++) {
		int num;
		cin >> num;
		m[num].first++;
		if (m[num].second == 0) {
			m[num].second = i + 1;
		}
	}

	vector<pair<int, pair<int, int>>> v(m.begin(), m.end()); //map을 vector로 변경
	sort(v.begin(), v.end(), compare);

	for (int i = 0; i < v.size(); i++) {
		int num = v[i].first;
		for (int j = 0; j < v[i].second.first; j++) {
			cout << num << " ";
		}
	}
}
profile
공부 기록용 ( ᵕ·̮ᵕ )♩

0개의 댓글