전공공부/코딩테스트
(c++) 프로그래머스 실패율
시아나
2022. 3. 8. 18:47
https://programmers.co.kr/learn/courses/30/lessons/42889
코딩테스트 연습 - 실패율
실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스
programmers.co.kr
#include <string>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
bool organize(pair<int, double> a, pair<int, double> b) {
if (a.second == b.second) {
return a.first < b.first;
}
else {
return a.second > b.second;
}
}
vector<int> solution(int N, vector<int> stages) {
vector<int> answer;
map<int, int> stage_count;
vector<pair<int, float>> fail;
for (int n : stages) {
if (n <= N) {
stage_count[n]++;
}
}
int person = stages.size();
for (int i = 1; i <= N; i++) {
if (person > 0) {
fail.push_back(make_pair(i, stage_count[i] / (float)person));
person -= stage_count[i];
}
else {
fail.push_back(make_pair(i, 0));
}
}
sort(fail.begin(), fail.end(), organize);
for (auto f : fail) {
answer.push_back(f.first);
}
return answer;
}