[νλ‘κ·Έλλ¨Έμ€] #42889 μ€ν¨μ¨
2018λ KAKAO BLIND RECRUITMENT
μ½λ©ν μ€νΈ μ°μ΅ - μ€ν¨μ¨ | νλ‘κ·Έλλ¨Έμ€
μ€ν¨μ¨ μνΌ κ²μ κ°λ°μ μ€λ 리λ ν° κ³ λ―Όμ λΉ μ‘λ€. κ·Έλ κ° λ§λ νλμ¦ μ€μ²μ±μ΄ λμ±κ³΅μ κ±°λμ§λ§, μμ¦ μ κ· μ¬μ©μμ μκ° κΈκ°ν κ²μ΄λ€. μμΈμ μ κ· μ¬μ©μμ κΈ°μ‘΄ μ¬μ©μ μ¬μ΄μ μ€ν μ΄μ§ μ°¨μ΄κ° λ무 ν° κ²μ΄ λ¬Έμ μλ€. μ΄ λ¬Έμ λ₯Ό μ΄λ»κ² ν κΉ κ³ λ―Ό ν κ·Έλ λ λμ μΌλ‘ κ²μ μκ°μ λλ €μ λμ΄λλ₯Ό μ‘°μ νκΈ°λ‘ νλ€. μμ μνΌ κ°λ°μλΌ λλΆλΆμ λ‘μ§μ μ½κ² ꡬννμ§λ§, μ€ν¨μ¨μ ꡬνλ λΆλΆμμ μκΈ°μ λΉ μ§κ³ λ§μλ€. μ€λ 리λ₯Ό μν΄ μ€ν¨μ¨μ ꡬνλ μ½λλ₯Ό
programmers.co.kr
λ¬Έμ
μ€ν¨μ¨μ ꡬνλ μ½λλ₯Ό μμ±νλΌ.
- μ€ν¨μ¨μ λ€μκ³Ό κ°μ΄ μ μνλ€.
- μ€ν μ΄μ§μ λλ¬νμΌλ μμ§ ν΄λ¦¬μ΄νμ§ λͺ»ν νλ μ΄μ΄μ μ / μ€ν μ΄μ§μ λλ¬ν νλ μ΄μ΄ μ
μ 체 μ€ν μ΄μ§μ κ°μ N, κ²μμ μ΄μ©νλ μ¬μ©μκ° νμ¬ λ©μΆ°μλ μ€ν μ΄μ§μ λ²νΈκ° λ΄κΈ΄ λ°°μ΄ stagesκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, μ€ν¨μ¨μ΄ λμ μ€ν μ΄μ§λΆν° λ΄λ¦Όμ°¨μμΌλ‘ μ€ν μ΄μ§μ λ²νΈκ° λ΄κ²¨μλ λ°°μ΄μ return νλλ‘ solution ν¨μλ₯Ό μμ±νλΌ.
νμ΄
μ νμ¬νμ μ λλ‘ λͺ» λ³΄κ³ νμ΄μ νλ Έμλ€.
μ€ν μ΄μ§μ λλ¬ν μ μ κ° μλ κ²½μ° ν΄λΉ μ€ν μ΄μ§μ μ€ν¨μ¨μ 0 μΌλ‘ μ μνλ€.
μ΄ λΆλΆμ΄ μλλ° νλ Έμ λμ λ‘μ§μ λλ¬ν μ€ν μ΄μ§ λ²νΈλ€ μ€ κ°μ₯ ν° κ²μ MaxλΌκ³ λκ³ v λΌλ vector κ°μ²΄μ λ£μ λ MaxλΆν° μννλλ‘ νμλ€.
νμ§λ§ μ΄ λΆλΆμ μμ κ° μλμ κ°μ΄ λμ μμ λλ
#testcase
7
1,2,3,4,5,6
μμ λ΅μμ΄ [6,5,4,3,2,1,7] μ΄μ§λ§ 7μ΄ μΆλ ₯λμ§ μλ νμμ΄ λ°μνλ€. λ°λΌμ Maxλ₯Ό NμΌλ‘ μ΄κΈ°ν μμΌλκ³ λ°λ³΅λ¬Έμ λ λ Maxλ³΄λ€ ν° μ€ν μ΄μ§ λ²νΈκ° λμ€λ©΄ κ°±μ μν€ λλ‘ μμ νλ λ§μΆμ μμλ€.
μ½λ
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
40
|
#include <algorithm>
#include <vector>
using namespace std;
typedef pair<double, int> p;
bool cmp(p a, p b) {
if (a.first == b.first) {
return a.second < b.second;
}
return a.first > b.first;
}
vector<int> solution(int N, vector<int> stages) {
vector<int> answer;
vector<p> v;
int arr[502] = { 0 }, Max = N;
for (int i = 0; i < stages.size(); i++) {
arr[stages[i]]++;
Max = stages[i] > Max ? stages[i] : Max;
}
int people = 0;
for (int i = Max; i > 0; i--) {
people += arr[i];
if (i <= N) {
if (!arr[i])v.push_back({ 0, i });
else v.push_back({ ((double)arr[i] / people), i });
}
}
sort(v.begin(), v.end(), cmp);
for (int i = 0; i < v.size(); i++) {
answer.push_back(v[i].second);
}
return answer;
}
int main() {
solution(5, { 2, 1, 2, 6, 2, 4, 3, 3 });
return 0;
}
|
cs |