Programers : 실패율 (2019 KAKAO BLIND RECRUITMENT)

김정욱·2021년 1월 20일
0

Algorithm - 문제

목록 보기
54/249

실패율

  • 위 문제를 해결하기 위한 키포인트는 2가지
    1) 각 state의 실패율 구하기
    2) sort하기 위한 compare 설계 & pair<int,double> 변수 사용
  • 나는 다 순조롭게 해놓고 실패율을 구하는 과정에서 double 자료형으로 나누지 않고
    int로 나누고 있었다
    !!! (그러니까 자꾸 0이 나오지 멍청아)

코드

#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool compare(pair<int, double> a, pair<int, double> b)
{
    if(a.second == b.second) return a.first < b.first;
    return a.second > b.second;
}
vector<int> solution(int N, vector<int> stages) {
    vector<int> answer;
    vector<int> count(N+1,0);
    for(int i=0; i < stages.size(); i++)
    {
        count[stages[i]-1]++;
    }
    int sum = count[N];
    vector<pair<int,double>> rate(N);
    for(int i=N-1;i>=0;i--)
    {
        sum += count[i];
        rate[i] = { i+1, sum != 0 ? count[i] / (double)sum : 0.0 }; 
    }
    sort(rate.begin(), rate.end(), compare);
    for(auto a : rate) answer.push_back(a.first);
    return answer;
}
profile
Developer & PhotoGrapher

0개의 댓글