https://programmers.co.kr/learn/courses/30/lessons/42889#
코딩테스트 연습 - 실패율
실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스
programmers.co.kr
간단한 구현 문제인데 역시 구현문제는 문제를 반드시 꼼꼼하고 꼼꼼하게 읽어야 한다는 것을 다시 깨달은 문제 ㅜ
double 계산은 double로
compare 함수 만들 때 같으면 작은 번호가 먼저 오게 하는 조건을 마지막까지 못보고 있었다 ( <-바보)
#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<double> challenge(N + 1);
vector<double> clear(N + 1);
vector<pair<int, double>> failure;
for (int i=0; i<(int)stages.size(); i++) {
for (int j=1; j<=(int)(stages[i]); j++) {
if (j == N + 1) {
continue;
}
challenge[j]++;
}
for (int j=1; j<=(int)(stages[i] - 1); j++) {
clear[j]++;
}
}
for (int i=1; i<=N; i++) {
if (challenge[i] == 0) {
failure.push_back(make_pair(i, 0));
continue;
}
failure.push_back(make_pair(i, (challenge[i] - clear[i]) / challenge[i]));
}
sort(failure.begin(), failure.end(), compare);
for (int i=0; i<N; i++) {
answer.push_back(failure[i].first);
}
return answer;
}
'ALGORITHM > OTHER' 카테고리의 다른 글
[c++] 숫자 문자열과 영단어 (프로그래머스, 구현) (0) | 2021.07.12 |
---|---|
[c++] 더 맵게 (프로그래머스 - heap/ priority queue) (0) | 2021.06.29 |
[c++] 신규 아이디 추천 (프로그래머스-구현) (0) | 2021.06.21 |
[c++] 모의고사 (완전탐색) (0) | 2021.05.17 |
[c++] K번째수 (0) | 2021.05.12 |