반응형
- map을 활용하여 해당 스테이지와 그 스테이지를 밟고 있는 친구들의 수를 key, value값으로 지정하자.
- N만큼 반복문을 돌면서 map의 해당 스테이지의 value값을 "스테이지 사이즈 - 넘지못한 친구들의 수" 로 나눠주어 그 몫을 벡터에 저장한다. (넘지못한 친구들의 수 = prev변수로 할당 )
- 벡터를 실패율의 내림차순으로 정렬하여 출력하도록 한다.
#include <string>
#include <vector>
#include <algorithm>
#include <map>
#include <iostream>
using namespace std;
bool cmp (pair<int,double> v1, pair<int,double> v2){
if(v1.second==v2.second)return v1.first < v2.first;
else return v1.second > v2.second;
}
vector<int> solution(int N, vector<int> stages) {
vector<int> answer;
map <int,int> m;
vector <pair<int, double>> v(N);
int prev=0;
for(int i=0; i<stages.size(); i++) m[stages[i]]++;
for(int i=0; i<N; i++){
v[i].first= i+1;
if(m[i+1]==0){
v[i].second = 0;
continue;
}
v[i].second = (double)m[i+1]/(stages.size()-prev);
prev +=m[i+1];
}
sort(v.begin(),v.end(),cmp);
for(int i=0; i<v.size(); i++){
answer.push_back(v[i].first);
}
return answer;
}
코딩테스트 연습 - 실패율
실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스
programmers.co.kr
반응형
'프로그래머스 > Level_1' 카테고리의 다른 글
[프로그래머스 Level_1 / C++ / 카카오] 키패드 누르기 (0) | 2022.02.18 |
---|---|
[Level_1 / C++ / 카카오] [1차] 다트 게임 (0) | 2022.01.23 |
[Level_1 / C++ / 카카오] [1차] 비밀지도 (0) | 2022.01.23 |
[Level_1 / C++ / 카카오] 신고 결과 받기 (0) | 2022.01.23 |
댓글