Notice
Recent Posts
Recent Comments
Link
bdfgdfg
[레벨1] 실패율 본문
반응형
#include <string.h>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
#define Epsilon 0.00000000000000000001
bool Compare(pair<int, double>& lhs, pair<int, double>& rhs)
{
if (abs(lhs.second - rhs.second) > Epsilon)
return lhs.second > rhs.second;
else
return lhs.first < rhs.first;
}
vector<int> solution(int N, vector<int> stages) {
vector<int> answer;
// 실패율 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수
int len = stages.size();
int* arr = new int[len];
memset(arr, 0, sizeof(int) * len);
vector<pair<int, double>> result;
result.reserve(N);
for (int i = 0; i < len; ++i)
arr[stages[i]] += 1;
// 사람 수 == len
int count = 0;
for (int i = 1; i <= N; ++i)
{
if (arr[i] != 0) //
{
if(len - count == 0)
{
result.push_back(make_pair(i,0.0));
continue;
}
double fail = static_cast<double>(arr[i]) / (len - count);
count += arr[i]; // 사람 수 기록.
result.push_back(make_pair(i, fail));
}
else
result.push_back(make_pair(i, 0.0));
}
sort(result.begin(), result.end(), Compare);
for (int i = 0; i < N; ++i)
answer.push_back(result[i].first);
delete[] arr;
return answer;
}
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[레벨 2] 스킬트리 (0) | 2021.11.28 |
---|---|
[레벨 2] 가장 큰 정사각형 찾기 (0) | 2021.11.16 |
[레벨 1] 다트찾기 (0) | 2021.11.02 |
[레벨 1 ] 최소직사각형 만들기 (0) | 2021.11.01 |
[레벨 1] 크레인 인형뽑기 (0) | 2021.10.29 |
Comments