programmers 실패율 : programmers.co.kr/learn/courses/30/lessons/42889

 

코딩테스트 연습 - 실패율

실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스

programmers.co.kr

 

kakao 2019 blind recruitment 에 나온 첫번째 문제입니다.

level1에 해당하는 쉬운 난이도의 문제이지만 또 그렇다고 너무 대충대충 풀면 틀리기 쉬운 문제이니

항상 문제를 꼼꼼히 읽고 문제에서 요구하는 조건대로 해결하는 연습을 해야할 것 같습니다.

 

매 스테이지마다 현재 계산해야할 (스테이지에 남은 사람의 수 / 현재 스테이지까지의 전체 사람의 수) 로 나누어주시면 됩니다.

 

실패'율'을 따지는 문제이기 때문에 소수점 계산을 위해 자료형을 정확히 사용하셔야 합니다.

 

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

int stage[501];

bool cmp(pair<double,int> &A, pair<double,int> &B){
    if(A.first != B.first) return A.first>B.first;
    return A.second < B.second;
}

vector<int> solution(int N, vector<int> stages) {
    vector<pair<double, int> > answer;
    vector<int> result;
    
    int people = stages.size();
    for(int i = 0; i<stages.size(); i++) stage[stages[i]]++;
    for(int i = 1; i<=N; i++){
        if(stage[i] == 0){
            answer.push_back({0.0, i});
            continue;
        }
        answer.push_back({(double)stage[i]/people, i});
        people -= stage[i];
    }
    
    sort(answer.begin(), answer.end(), cmp);
    
    for(auto i : answer) result.push_back(i.second);
    
    return result;
}

'algorithm > programmers' 카테고리의 다른 글

programmers 길 찾기 게임  (0) 2020.12.11
programmers 오픈채팅방  (0) 2020.12.10
Programmers 가사 검색  (0) 2020.12.09
Programmers 블록 이동하기  (0) 2020.12.08
Programmers 디스크 컨트롤러 C++  (0) 2020.08.20

+ Recent posts