2019 카카오 채용 코딩 테스트 문제입니다.
문제 확인
prefix sum 활용 문제입니다.
풀이
입력받은 스테이지를 읽으면서 해당 스테이지에 몇 명이 있는지 기록합니다.
그 후 역순으로 읽어가면서 실패율을 구합니다.
실패율 = ary[i] / SUM( ary[i], ary[i+1], ... ary[N])
실패율을 전부 구하고 나면 실패율 순서대로 정렬하고 인덱스를 따로 추출하여 출력합니다.
코드
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
|
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
typedef struct pir {
int idx;
double fail;
};
vector<int> solution(int N, vector<int> stages) {
vector<int> answer(N);
pir ary[502] = { 0 };
for (auto t : stages)
++ary[t - 1].fail;//인원수 기록
double t = ary[N].fail;//prefix sum
for (int i = N - 1; i >= 0; i--) {
ary[i].idx = i;//인덱스 기록
t += ary[i].fail;
ary[i].fail = t ? ary[i].fail / t : 0;//실패율 기록
}
sort(ary, ary + N, [](const pir& a, const pir& b)->bool {//정렬
if(a.fail!=b.fail)
return a.fail > b.fail;
return a.idx < b.idx;
});
for (int i = 0; i < N; i++) {//인덱스 추출
answer[i] = ary[i].idx + 1;
}
return answer;
}
|
cs |
정확성 테스트
테스트 1 〉 | 통과 (0.02ms, 3.97MB) |
테스트 2 〉 | 통과 (0.02ms, 3.96MB) |
테스트 3 〉 | 통과 (0.15ms, 4.02MB) |
테스트 4 〉 | 통과 (0.36ms, 6.52MB) |
테스트 5 〉 | 통과 (0.69ms, 9.84MB) |
테스트 6 〉 | 통과 (0.04ms, 3.94MB) |
테스트 7 〉 | 통과 (0.06ms, 3.89MB) |
테스트 8 〉 | 통과 (0.38ms, 6.59MB) |
테스트 9 〉 | 통과 (0.69ms, 9.95MB) |
테스트 10 〉 | 통과 (0.31ms, 6.34MB) |
테스트 11 〉 | 통과 (0.36ms, 6.59MB) |
테스트 12 〉 | 통과 (0.49ms, 7.87MB) |
테스트 13 〉 | 통과 (0.55ms, 8.31MB) |
테스트 14 〉 | 통과 (0.02ms, 3.96MB) |
테스트 15 〉 | 통과 (0.29ms, 5.25MB) |
테스트 16 〉 | 통과 (0.15ms, 4.43MB) |
테스트 17 〉 | 통과 (0.28ms, 5.33MB) |
테스트 18 〉 | 통과 (0.16ms, 4.31MB) |
테스트 19 〉 | 통과 (0.04ms, 3.95MB) |
테스트 20 〉 | 통과 (0.18ms, 4.72MB) |
테스트 21 〉 | 통과 (0.35ms, 6.16MB) |
테스트 22 〉 | 통과 (1.00ms, 9.95MB) |
테스트 23 〉 | 통과 (0.70ms, 9.64MB) |
테스트 24 〉 | 통과 (0.59ms, 9.62MB) |
테스트 25 〉 | 통과 (0.01ms, 3.95MB) |
테스트 26 〉 | 통과 (0.01ms, 3.97MB) |
테스트 27 〉 | 통과 (0.01ms, 3.91MB) |
채점 결과
정확성: 100.0
합계: 100.0 / 100.0
반응형
'알고리즘 문제 > [프로그래머스]' 카테고리의 다른 글
[프로그래머스] 블록 게임 (0) | 2021.03.23 |
---|---|
[프로그래머스] 후보키 (0) | 2021.03.19 |
[프로그래머스] 오픈 채팅방 (0) | 2021.03.19 |
[프로그래머스] 가사 검색 (0) | 2021.03.18 |
[프로그래머스] 블록 이동하기 (0) | 2021.03.18 |