λ¬Έμ
XXκ²μμλ νΌλ‘λ μμ€ν (0 μ΄μμ μ μλ‘ ννν©λλ€)μ΄ μμΌλ©°, μΌμ νΌλ‘λλ₯Ό μ¬μ©ν΄μ λμ μ ννν μ μμ΅λλ€.
μ΄λ, κ° λμ λ§λ€ ννμ μμνκΈ° μν΄ νμν "μ΅μ νμ νΌλ‘λ"μ λμ ννμ λ§μ³€μ λ μλͺ¨λλ "μλͺ¨ νΌλ‘λ"κ° μμ΅λλ€.
"μ΅μ νμ νΌλ‘λ"λ ν΄λΉ λμ μ νννκΈ° μν΄ κ°μ§κ³ μμ΄μΌ νλ μ΅μνμ νΌλ‘λλ₯Ό λνλ΄λ©°,
"μλͺ¨ νΌλ‘λ"λ λμ μ ννν ν μλͺ¨λλ νΌλ‘λλ₯Ό λνλ λλ€.
μλ₯Ό λ€μ΄ "μ΅μ νμ νΌλ‘λ"κ° 80, "μλͺ¨ νΌλ‘λ"κ° 20μΈ λμ μ νννκΈ° μν΄μλ μ μ μ νμ¬ λ¨μ νΌλ‘λλ 80 μ΄μ μ΄μ΄μΌ νλ©°, λμ μ ννν νμλ νΌλ‘λ 20μ΄ μλͺ¨λ©λλ€.
μ΄ κ²μμλ ν루μ ν λ²μ© ννν μ μλ λμ μ΄ μ¬λ¬κ° μλλ°, ν μ μ κ° μ€λ μ΄ λμ λ€μ μ΅λν λ§μ΄ νννλ € ν©λλ€.
μ μ μ νμ¬ νΌλ‘λ kμ κ° λμ λ³ "μ΅μ νμ νΌλ‘λ", "μλͺ¨ νΌλ‘λ"κ° λ΄κΈ΄ 2μ°¨μ λ°°μ΄ dungeons κ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ,
μ μ κ° ννν μ μλ μ΅λ λμ μλ₯Ό return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
μ νμ¬ν
kλ 1 μ΄μ 5,000 μ΄νμΈ μμ°μμ λλ€. dungeonsμ μΈλ‘(ν) κΈΈμ΄(μ¦, λμ μ κ°μ)λ 1 μ΄μ 8 μ΄νμ λλ€.
dungeonsμ κ°λ‘(μ΄) κΈΈμ΄λ 2 μ λλ€.
dungeonsμ κ° νμ κ° λμ μ ["μ΅μ νμ νΌλ‘λ", "μλͺ¨ νΌλ‘λ"] μ λλ€. "μ΅μ νμ νΌλ‘λ"λ νμ "μλͺ¨ νΌλ‘λ"λ³΄λ€ ν¬κ±°λ κ°μ΅λλ€.
"μ΅μ νμ νΌλ‘λ"μ "μλͺ¨ νΌλ‘λ"λ 1 μ΄μ 1,000 μ΄νμΈ μμ°μμ λλ€.
μλ‘ λ€λ₯Έ λμ μ ["μ΅μ νμ νΌλ‘λ", "μλͺ¨ νΌλ‘λ"]κ° μλ‘ κ°μ μ μμ΅λλ€.
νμ΄
#include <string>
#include <vector>
using namespace std;
int n, answer;
void dfs(vector<vector<int>>&d, vector<bool>&visited, int visit, int hp) {
if(answer < visit) {
answer = visit;
}
for(int i=0; i<n; i++) {
if(!visited[i] && d[i][0] <= hp) {
visited[i] = true;
dfs(d, visited, visit+1, hp-d[i][1]);
visited[i] = false;
}
}
}
int solution(int k, vector<vector<int>> dungeons) {
answer = -1;
n = dungeons.size();
vector<bool>v (n,false);
dfs(dungeons, v, 0, k);
return answer;
}
'π Cpp > [νλ‘κ·Έλλ¨Έμ€] κ³ λμ Kit' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€] μ λ ₯λ§μ λλ‘ λλκΈ° (level2) (0) | 2025.01.17 |
---|---|
[νλ‘κ·Έλλ¨Έμ€][C++] κ°μ₯ ν° μ (level2) (0) | 2025.01.09 |
[νλ‘κ·Έλλ¨Έμ€][C++] Kλ²μ§Έμ (level1) (0) | 2025.01.05 |
[νλ‘κ·Έλλ¨Έμ€][C++] λ λ§΅κ² (level2) (2) | 2025.01.05 |
[νλ‘κ·Έλλ¨Έμ€][C++] μ£Όμκ°κ²© (level2) (0) | 2025.01.05 |