λ¬Έμ : top K μ«μ
nκ°μ μ«μκ° μ£Όμ΄μ‘μ λ, μ€λ³΅μ μ μΈνκ³ λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬νμ λ μμ μλ kκ°μ μ«μλ₯Ό μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±ν΄λ³΄μΈμ.
μ λ ₯ νμ
첫 λ²μ§Έ μ€μλ μμμ κ°μ nκ³Ό kκ° κ³΅λ°±μ μ¬μ΄μ λκ³ μ£Όμ΄μ§λλ€.
λ λ²μ§Έ μ€μλ nκ°μ μμκ° κ³΅λ°±μ μ¬μ΄μ λκ³ μ£Όμ΄μ§λλ€.
- 1 ≤ k ≤ n ≤ 100,000
- 1 ≤ μ£Όμ΄μ§λ μμ κ° ≤
μΆλ ₯ νμ
μ€λ³΅μ μ μΈνκ³ λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬νμ λ μμ μλ kκ°μ μ«μλ₯Ό 곡백μ μ¬μ΄μ λκ³ μΆλ ₯ν©λλ€. μ€λ³΅μ μ μΈνμ λ μμμ κ°μκ° kλ³΄λ€ μμ κ²½μ°λ μλ€κ³ κ°μ ν΄λ μ’μ΅λλ€.
λμ νμ΄
#include <iostream>
#include <set>
using namespace std;
int main() {
int n; int k; int a;
set<int> s;
cin >> n >> k;
for(int i=0; i<n; ++i){
cin >> a;
s.insert(a);
}
for(int i=0; i<k; ++i){
cout << *s.rbegin() << " ";
s.erase(*s.rbegin());
}
return 0;
}
λ§μ§λ§ μμ μΆλ ₯ ν, λ§μ§λ§ μμλ₯Ό μμ νλ κ²μ λ°λ³΅νλ μμΌλ‘ νμ΄μ ν΄κ²°νλλ°
ν΄μ€μλ λ€λ₯Έ λ°©μμΌλ‘ μ€λͺ μ΄ λμ΄μμμ.
λμΆ© μ λ ₯κ°μ -1μ κ³±ν΄μ setμ μ§μ΄λ£κ³ ,,, (λ΄λ¦Όμ°¨μμ μν΄μ)
μλ λ°λ³΅λ¬Έμ μ¬μ©ν΄μ μμμλΆν° μ΄ν°λ μ΄ν°λ₯Ό μ¬μ©ν΄μ μΆλ ₯ν¨.
for(set<int>::iterator it = s.begin(); cnt < k; it++)
μ΄λ° λ°©λ²λ μꡬλ§~~~
κ·Όλ° μμ§μ iterator μ¬μ©μ μ΅μνμ§ μμμ ,,, κ³΅λΆ λ ν΄μΌκ² λ€.
μ½λνΈλ¦¬λ UIκ° μ μ μ¬μ΄νΈ κ°μμ λ³ κΈ°λλ₯Ό νμ§ μμλλ° μμμΈλ‘ λ¬Έμ ν리ν°κ° μ’μλ―!!
λ¬Έμ μΆμ² μ½λνΈλ¦¬
'π μκ³ λ¦¬μ¦ > Code Tree' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μ½λνΈλ¦¬] Backtracking - λ°±νΈλνΉ / μ¬κ· μ°μ΅λ¬Έμ (0) | 2023.02.21 |
---|---|
[μ½λνΈλ¦¬] DFS / BFS (0) | 2023.02.21 |
[μ½λνΈλ¦¬] Tree Set (0) | 2023.02.09 |
[μ½λνΈλ¦¬] Hash Set μ°μ΅λ¬Έμ (0) | 2023.02.09 |
[μ½λνΈλ¦¬] Hash Set (0) | 2023.02.09 |