μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
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 |
- κΉμ΄μ°μ νμ
- μ°μ μμν
- λμ κ³νλ²
- λ¨Έμ§μνΈ
- SQL
- κ·Έλννμ
- μ€λΈμ
- κ·Έλν
- νλ‘κ·Έλλ¨Έμ€
- db
- ν°μ€ν 리μ±λ¦°μ§
- DFS
- LIS
- λλΉμ°μ νμ
- μν
- μκ³ λ¦¬μ¦
- μλ£κ΅¬μ‘°
- λ°μ΄ν°λ² μ΄μ€
- μ λ ¬
- λμ ν©
- μμνμ
- λ€μ΄λλ―Ήνλ‘κ·Έλλ°
- λ³ν©μ λ ¬
- λ°±μ€
- μμꡬνκΈ°
- 그리λ
- BFS
- νμ΄μ¬
- DP
- ꡬν
πππ°πΈ π£πΆπ΅ π΄π΅π¦π’π₯πΊ
[νλ‘κ·Έλλ¨Έμ€] NμΌλ‘ νν - C++ λ³Έλ¬Έ
[νλ‘κ·Έλλ¨Έμ€] NμΌλ‘ νν - C++
.23 2024. 4. 11. 13:03λ¬Έμ
μλμ κ°μ΄ 5μ μ¬μΉμ°μ°λ§μΌλ‘ 12λ₯Ό ννν μ μμ΅λλ€.
12 = 5 + 5 + (5 / 5) + (5 / 5)
12 = 55 / 5 + 5 / 5
12 = (55 + 5) / 5
5λ₯Ό μ¬μ©ν νμλ κ°κ° 6,5,4 μ
λλ€. κ·Έλ¦¬κ³ μ΄μ€ κ°μ₯ μμ κ²½μ°λ 4μ
λλ€.
μ΄μ²λΌ μ«μ Nκ³Ό numberκ° μ£Όμ΄μ§ λ, Nκ³Ό μ¬μΉμ°μ°λ§ μ¬μ©ν΄μ νν ν μ μλ λ°©λ² μ€ N μ¬μ©νμμ μ΅μκ°μ return νλλ‘ solution ν¨μλ₯Ό μμ±νμΈμ.
μ νμ¬ν
- Nμ 1 μ΄μ 9 μ΄νμ λλ€.
- numberλ 1 μ΄μ 32,000 μ΄νμ λλ€.
- μμμλ κ΄νΈμ μ¬μΉμ°μ°λ§ κ°λ₯νλ©° λλκΈ° μ°μ°μμ λλ¨Έμ§λ 무μν©λλ€.
- μ΅μκ°μ΄ 8λ³΄λ€ ν¬λ©΄ -1μ return ν©λλ€.
μ μΆλ ₯ μ
N | number | return |
5 | 12 | 4 |
2 | 11 | 3 |
DPλ₯Ό μ¬μ©ν λ¬Έμ
π μ°Έκ³ : NμΌλ‘ νν
λ¬Έμ λ₯Ό μ΄λ»κ² μͺΌκ°μΌ ν μ§ λͺ°λΌμ μ κ·Όλ λͺ»νκ³ μλ€κ° ννΈλ₯Ό μ»κ³ νμλ€.
Nμ μ¬μ© νμλ₯Ό 보면
N = 1μΌλ DP[1] = 1
N = 2μΌλ DP[1]μ κ°μ§κ³ μ¬μΉμ°μ°μ μν(N + N, N - N, N * N, N / N)νλ 4κ°μ§μ λ μλ₯Ό μ°λ¬μ λΆμΈ NNκΉμ§ ν¬ν¨νμ¬ DP[2] = 5
N = 3μΌλ DP[1]κ³Ό DP[2]λ‘ μ¬μΉμ°μ°μ μννλ κ²½μ°μ μ, DP[2]μ DP[1]λ‘ μ¬μΉμ°μ°μ μννλ κ²½μ°μ μ, NNN
...
μ΄λ°μμΌλ‘
νμκ° iλ²μΌ λμ κ²½μ°μ μλ DP[1] & DP[i - 1], DP[2] & DP[i - 2], ... , DP[i - 1] & DP[i] μμ μ¬μΉμ°μ°μ μννμμ λμ κ²½μ°μ μμ Nμ iλ² μ¬μ©ν κ²½μ°λ₯Ό λνλ©΄ κ·μΉμ μ°Ύμ μ μλ€.
μ½λ
#include <string>
#include <vector>
#include <cmath>
using namespace std;
int solution(int N, int number) {
if(N == number) return 1;
vector<vector<int>> dp;
dp.push_back({ 0 });
dp.push_back({ N });
for(int i = 2; i <= 8; i++) {
vector<int> temp;
int k = 0, calc = 0;
while(k != i) {
calc += N * (int)pow(10, k++);
}
temp.push_back(calc);
for(int j = 1; j < i; j++) {
for(int l = 0; l < dp[j].size(); l++) {
for(int m = 0; m < dp[i - j].size(); m++) {
if(dp[i - j][m] == 0) continue;
temp.push_back(dp[j][l] + dp[i - j][m]);
temp.push_back(dp[j][l] - dp[i - j][m]);
temp.push_back(dp[j][l] * dp[i - j][m]);
temp.push_back(dp[j][l] / dp[i - j][m]);
}
}
}
for(int j = 0; j < temp.size(); j++) {
if(temp[j] == number) return i;
}
dp.push_back(temp);
}
return -1;
}
'μ½λ©ν μ€νΈ μ€λΉ > νλ‘κ·Έλλ¨Έμ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€] λ¨μμΉ΄λ©λΌ - C++ (0) | 2024.04.11 |
---|---|
[νλ‘κ·Έλλ¨Έμ€] λ λ§΅κ² - C++ (0) | 2024.04.11 |
[νλ‘κ·Έλλ¨Έμ€] μ‘°μ΄μ€ν± - C++ (0) | 2024.04.11 |
[νλ‘κ·Έλλ¨Έμ€] νλ‘μΈμ€ - C++ (0) | 2024.04.08 |
[νλ‘κ·Έλλ¨Έμ€] μμ λμ§ν - C++ (0) | 2024.04.04 |