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 |