https://school.programmers.co.kr/learn/courses/30/lessons/142085
λ¬Έμ μ€λͺ
μ€νΈλ μμ¦ λνμ€ κ²μμ νΉ λΉ μ Έ μμ΅λλ€. λνμ€ κ²μμ μ€νΈκ° 보μ ν λ³μ¬ nλͺ μΌλ‘ μ°μλλ μ μ 곡격μ μμλλ‘ λ§λ κ²μμ λλ€. λνμ€ κ²μμ λ€μκ³Ό κ°μ κ·μΉμΌλ‘ μ§νλ©λλ€.
- μ€νΈλ μ²μμ λ³μ¬ nλͺ μ κ°μ§κ³ μμ΅λλ€.
- 맀 λΌμ΄λλ§λ€ enemy[i]λ§λ¦¬μ μ μ΄ λ±μ₯ν©λλ€.
- λ¨μ λ³μ¬ μ€ enemy[i]λͺ
λ§νΌ μλͺ¨νμ¬ enemy[i]λ§λ¦¬μ μ μ λ§μ μ μμ΅λλ€.
- μλ₯Ό λ€μ΄ λ¨μ λ³μ¬κ° 7λͺ μ΄κ³ , μ μ μκ° 2λ§λ¦¬μΈ κ²½μ°, νμ¬ λΌμ΄λλ₯Ό λ§μΌλ©΄ 7 - 2 = 5λͺ μ λ³μ¬κ° λ¨μ΅λλ€.
- λ¨μ λ³μ¬μ μλ³΄λ€ νμ¬ λΌμ΄λμ μ μ μκ° λ λ§μΌλ©΄ κ²μμ΄ μ’ λ£λ©λλ€.
- κ²μμλ 무μ κΆμ΄λΌλ μ€ν¬μ΄ μμΌλ©°, 무μ κΆμ μ¬μ©νλ©΄ λ³μ¬μ μλͺ¨μμ΄ ν λΌμ΄λμ 곡격μ λ§μ μ μμ΅λλ€.
- 무μ κΆμ μ΅λ kλ² μ¬μ©ν μ μμ΅λλ€.
μ€νΈλ 무μ κΆμ μ μ ν μκΈ°μ μ¬μ©νμ¬ μ΅λν λ§μ λΌμ΄λλ₯Ό μ§ννκ³ μΆμ΅λλ€.
μ€νΈκ° μ²μ κ°μ§κ³ μλ λ³μ¬μ μ n, μ¬μ© κ°λ₯ν 무μ κΆμ νμ k, 맀 λΌμ΄λλ§λ€ 곡격ν΄μ€λ μ μ μκ° μμλλ‘ λ΄κΈ΄ μ μ λ°°μ΄ enemyκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§λλ€. μ€νΈκ° λͺ λΌμ΄λκΉμ§ λ§μ μ μλμ§ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
- λͺ¨λ λΌμ΄λλ₯Ό λ§μ μ μλ κ²½μ°μλ enemyμ κΈΈμ΄λ₯Ό return ν΄μ£ΌμΈμ.
λ΄ μ½λ
μ²μμλ enemyμμ μ μ΄ λ§μ μμλ‘ kκ°μ λΌμ΄λλ₯Ό λ°λ‘ μ μ₯ν΄ λκ³ λ¬Έμ λ₯Ό νμλλ° μμΈκ° λ§μ΄ λ°μν΄ νλ Έλ€.
μ€λ¦μ°¨μ μ°μ μμ νλ₯Ό μ¬μ©νλ ν¨μ¬ κ°λ¨νκ² ν μ μμλ€.
#include <string>
#include <vector>
#include <queue>
using namespace std;
int solution(int n, int k, vector<int> enemy) {
int answer = k;
// μ€λ¦μ°¨μ μ°μ μμ ν
priority_queue<int, vector<int>, greater<int>> pq;
for( auto e : enemy)
{
pq.push(e);
// k λΌμ΄λλ 무μ κΆμ μ΄μ©ν΄ λμ΄κ° μ μμΌλ―λ‘
// k λΌμ΄λ μ΄μμ΄ λμμλλΆν° κ°μ₯ μ μ κ°μ§ λΌμ΄λλ₯Ό μ²λ¦¬νλ€
if(pq.size() > k)
{
n -= pq.top();
pq.pop();
if(n >= 0)
++answer;
else
return answer;
}
}
return enemy.size();
}
'π₯οΈ Study Note > Coding Test' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€]level.1 - ν¬λ μΈ μΈνλ½κΈ° κ²μ(C++) (2) | 2023.08.10 |
---|---|
[νλ‘κ·Έλλ¨Έμ€]level.2 - 2xn νμΌλ§(C++) (0) | 2023.08.08 |
[νλ‘κ·Έλλ¨Έμ€]level.2 - ν μΈ νμ¬(C++) (0) | 2023.08.03 |
[νλ‘κ·Έλλ¨Έμ€]level.3 - μΈμ¬κ³ κ³Ό(C++) (1) | 2023.08.01 |
[νλ‘κ·Έλλ¨Έμ€]level.2 - N-Queen(C++) (0) | 2023.07.31 |