https://programmers.co.kr/learn/courses/30/lessons/42889
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
float fail_rate(vector<int> stages, int cmp) {
float not_yet = 0;
float arrival = 0;
for (int i = 0; i < stages.size(); i++) {
if (stages[i] > cmp) {
arrival++;
}
else if (stages[i] == cmp) {
arrival++;
not_yet++;
}
}
if (arrival == 0) {
return 0;
}
return not_yet / arrival;
}
vector<int> solution(int N, vector<int> stages) {
vector<int> answer;
vector<float> fail;
for (int i = 1; i < N+1; i++) {
fail.push_back(fail_rate(stages, i));
}
for (int i = 1; i < N + 1; i++) {
vector<float>::iterator max_iter = max_element(fail.begin(), fail.end());
int max_idx = max_iter - fail.begin();
answer.push_back(max_idx+1);
fail[max_idx] = -1;
}
return answer;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
문제에서 실패율의 정의 : 스테이지에 도달했으나 아직 클리어하지 못한플레이어 수 / 스테이지에 도달한 플레이어 수
스테이지의 개수 N, 사용자가 현재 멈춰있는 스테이지 번호의 배열 stages
실패율을 구할 때 도달한 플레이어수가 없어 arrival의 값이 0인 경우 오류이므로
도달한 플레이어 수가 0인 경우 실패율을 0으로 처리해줘야한다
반응형
'알고리즘(C++) > 프로그래머스 level1' 카테고리의 다른 글
크레인 인형뽑기 게임 - 2019 카카오 개발자 겨울 인턴십 (0) | 2020.04.04 |
---|---|
예산 (0) | 2020.04.04 |
체육복 (0) | 2020.04.04 |
x만큼 간격이 있는 n개의 숫자 (0) | 2020.04.04 |
핸드폰 번호 가리기 (0) | 2020.04.03 |