Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit ba17c43

Browse files
committed
Lv5_실패율
1 parent 6330bd4 commit ba17c43

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

‎Programmers/Lv5/Lv5_실패율.cpp‎

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#include <string>
2+
#include <vector>
3+
#include <iostream>
4+
#include <algorithm>
5+
using namespace std;
6+
7+
bool cmp_fail(pair<double, int> p1, pair<double, int> p2){
8+
if (p1.first < p2.first)
9+
return true;
10+
else if (p1.first == p2.first) {
11+
if (p1.second < p2.second)
12+
return true;
13+
else
14+
return false;
15+
}
16+
else
17+
return false;
18+
}
19+
20+
vector<int> solution136(int N, vector<int> stages) {
21+
vector<int> answer;
22+
vector<int> success(N);
23+
vector<int> fail(N);
24+
vector<pair<double, int>> ans;
25+
26+
for (int i = 0; i < stages.size(); ++i) {
27+
if (stages[i] > N) { // 다깬사람
28+
for (int j = 0; j < N; j++)
29+
++success[j];
30+
}
31+
else { // 다 못깬사람
32+
for (int j = 0; j < stages[i]; ++j)
33+
++success[j];
34+
++fail[stages[i] - 1];
35+
}
36+
}
37+
38+
for (int i = 0; i < N; ++i)
39+
ans.push_back({(double)success[i] / fail[i], i + 1}); // 0으로 나누기를 방지하기 위해 거꾸로 나누고 정렬을 반대로
40+
stable_sort(ans.begin(), ans.end(), cmp_fail); // 기존 정렬한것을 그대로 유지하기 위해
41+
42+
for (int i = 0; i < N; i++)
43+
answer.push_back(ans[i].second);
44+
return answer;
45+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /