- Today
- Total
- array
- μλ£κ΅¬μ‘°
- OOP
- BFS
- μλ°
- database
- ꡬν
- νλ‘κ·Έλλ¨Έμ€
- μΈν΄
- μμμ λ ¬
- MST
- spring
- dp
- μλ°μμ μ
- Graph
- λ¬Έλ²
- λ°±μλ
- leetcode
- CS
- μ‘Έμ μν
- λ€μ΅μ€νΈλΌ
- Algorithm
- PS
- pytorch
- 그리λ
- 벨λ§ν¬λ
- java
- λ°μ΄ν°λ² μ΄μ€
- λ°±μ€
- tree
Partially Committed
[2019 KAKAO BLIND RECRUITMENT] μ€ν¨μ¨ λ³Έλ¬Έ
[2019 KAKAO BLIND RECRUITMENT] μ€ν¨μ¨
WonderJay 2022. 7. 4. 01:17https://programmers.co.kr/learn/courses/30/lessons/42889
hash table μ < μ€ν μ΄μ§, μ€ν¨μ¨ > μ insert ν λ€, μ€ν¨μ¨μ λ°λΌμ μ λ ¬νμ¬ answer μ μ μ ν κ°μ push νλ€.
challenge λ°°μ΄μλ κ°κ°μ μ€ν μ΄μ§μ λνμ¬ λμ μ νλ€λ©΄(κ±°μ³μλ€λ©΄) νλμ© μ¦κ°νλ€.
μλ₯Ό λ€μ΄, stage λ°°μ΄μ΄ [2, 1, 2, 6, 2, 4, 3, 3] μΈ κ²½μ°μλ challenge[1] = 8 (μ€ν μ΄μ§ 1 μ 8 λͺ μ΄ λͺ¨λ μ§λκ°μΌλ―λ‘), challenge[2] = 7 (μ€ν μ΄μ§ 2 λ 7 λͺ μ΄ κ±°μ³κ°μΌλ―λ‘) μ΄λ€.
num λ°°μ΄μλ κ°κ°μ μ€ν μ΄μ§μ λ¨Έλ¬Όκ³ μλ μ¬λμ κ°μλ₯Ό μ μ₯νλ€.
μλ₯Ό λ€μ΄, stage λ°°μ΄μ΄ [2, 1, 2, 6, 2, 4, 3, 3] μΈ κ²½μ°μλ num[1] = 1, num[2] = 3 ... μ΄λ€.
κ·Έλ¬λ©΄ μ€ν¨μ¨μ num[i]/challenge[i] λ‘ μ μν μ μλλ° μ΄λ μ£Όμν΄μΌν μ μ challenge[i] κ° 0 μΌ μ μλ€λ κ²μ΄λ€. μ΄μ λν μμΈμ²λ¦¬λ₯Ό ν΄μ£Όμ΄μΌ νλ κ²μ μ£Όμνμ.
μμ κ°μ΄ μ€ν¨μ¨μ ꡬνλ©΄, < μ€ν μ΄μ§, μ€ν¨μ¨ > μμλ₯Ό hash table μ μ μ₯νλ€. κ·Έλ¦¬κ³ pair<int, double> μ μμλ‘ κ°μ§λ vector μΈ temp λ₯Ό μ΄μ©νμ¬ hash table μ μ λ ¬νλ€. μ΄λ λλ€ ν¨μλ₯Ό μ΄μ©νμ¬ comp ν¨μλ₯Ό μ μνλλ°, μ€ν¨μ¨μ΄ κ°λ€λ©΄ μ€ν μ΄μ§μ μ΄λ¦μ μ€λ¦μ°¨μμΌλ‘ μ λ ¬νκ³ μ€ν¨μ¨μ΄ λ€λ₯΄λ©΄ μ€ν¨μ¨μ λ°λ₯Έ λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬λλλ‘ μ€μ νλ€. μ΄ν μ λ ¬λ temp λ°°μ΄μ μμ μ€ stage μ ν΄λΉνλ κ°μ answer λ°°μ΄μ 차곑차곑 μ μ₯νλ©΄ λλ€.
[C++]
#include <string>
#include <vector>
#include <algorithm>
#include <unordered_map>
using namespace std;
vector<int> solution(int N, vector<int> stages) {
vector<int> answer;
vector<int> challenge(N+1, 0);
vector<int> num(N+1, 0);
unordered_map<int, double> h_map;
for (int i = 0; i < stages.size(); i++)
{
for (int j = stages[i]; j > 0; j--)
{
challenge[j]++;
}
num[stages[i]]++;
}
for (int i = 1; i <= N; i++)
{
h_map[i] = 0.0;
if (challenge[i] != 0)
{
h_map[i] = (double)num[i] / (double)challenge[i];
}
}
vector<pair<int, double>> temp(h_map.begin(), h_map.end());
sort(temp.begin(), temp.end(), [](pair<int, double> a, pair<int, double> b)
{
if (a.second == b.second)
{
return a.first < b.first;
}
return a.second > b.second;
});
for (int i = 0; i < temp.size(); i++)
{
answer.push_back(temp[i].first);
}
return answer;
}
'π₯ Algorithm || λ¬Έμ νμ΄ > PS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μκ° μ½λ μ±λ¦°μ§ μμ¦1] 3μ§λ² λ€μ§κΈ° (0) | 2022.07.04 |
---|---|
[μκ° μ½λ μ±λ¦°μ§ μμ¦2] μ½μμ κ°μμ λ§μ (0) | 2022.07.04 |
[μ°ΎμλΌ νλ‘κ·Έλλ° λ§μμ€ν°] ν°μΌλͺ¬ (0) | 2022.07.03 |
[νλ‘κ·Έλλ¨Έμ€] 체μ‘볡 (0) | 2022.07.03 |
[νλ‘κ·Έλλ¨Έμ€] λͺ¨μκ³ μ¬ (0) | 2022.07.02 |