---
layout: post
title:  " [Programmers] 42889. 실패율 "
categories: Algorithm
tags: Programmers
author: goodGid
---
* content
{:toc}

## Problem 
Problem URL : **[실패율](https://programmers.co.kr/learn/courses/30/lessons/42889)**








---

## [1] Answer Code (18. 10. 02)

``` cpp
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

struct game{
    double value;
    int row;
};

vector<game> v;

// [1]
bool compare(game &p1, game &p2){
    if( p1.value == p2.value)
        return p1.row < p2.row;
    return p1.value > p2.value;
}

vector<int> solution(int n, vector<int> stages) {
    vector<int> answer;
    
    int size = (int) stages.size();
    
    for(int i=1; i<=n; i++){
        double total = 0;
        double ing = 0;
        for(int j=0; j<size; j++){
            if( stages[j] == i){
                ing ++;
                total++;
            }
            if( stages[j] > i)
                total++;
        }
        double tmp = ing / total;
        // [2]
        if( ing == 0 && total == 0 )
            tmp = 0.0;
        v.push_back({ tmp , i });
    }
    sort(v.begin(), v.end(), compare);
    
    for(int i=0; i< v.size(); i++){
        answer.push_back(v[i].row);
        cout << v[i].row << endl;
    }
    
    return answer;
}
```


### Review

* (2018년)KAKAO BLIND RECRUITMENT 기출 문제.

* 2가지 주의할 점이 있다.

* [1] : First 값은 오름차순 <br> 만약 First 값이 같다면 Second 값은 내림차순을 해야할 때 <br> [1]처럼 compare함수를 만들어서 정렬을 해야한다.

* [2] : 분모가 0이 되면 나눗셈을 할 수가 없다. 
Write PGM Post " 42889. 실패율 "
Write PGM Post " 42889. 실패율 "
