https://school.programmers.co.kr/learn/courses/30/lessons/42895
λ¬Έμ μ€λͺ
μλμ κ°μ΄ 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 ν©λλ€.
μ΄λ €μ΄ dpλ¬Έμ ... μ¬μ€ dfsλ‘λ ν μ μμ κ² κ°μλλ° λΆλ₯κ° dpκΈΈλ dpλ‘ νλ €κ³ μ΅μ μ λ€νμΌλ
μ€ν¨νκ³ κ·Έλ₯ ꡬκΈλ§ν΄λ³΄μλ€
κ·Όλ° μ€λͺ λ³΄κ³ λ μ΄ν΄κ° μλΌμ νμ°Έμ λμ μ΄λ©΄μ μ΄ν΄νλ €κ³ λ Έλ ₯ν¨. κ·Έλμ ν 80νΌ μ λ μ΄ν΄νλ€....
μλ μμ¬μλ°
4μ€ forλ¬Έμ λ무νκ±° μλμ€>?
λμ νμ΄
#include <string>
#include <vector>
#include <set>
using namespace std;
int solution(int N, int number) {
int answer = -1;
set<int> dp[8];
int tmp=0;
for(int i=0; i<8; ++i){
tmp = tmp*10 + N;
dp[i].insert(tmp);
}
for(int i=1; i<8; ++i){
for(int j=0; j<i; ++j){
for(int a : dp[j]){
for(int b : dp[i-j-1]){
dp[i].insert(a+b);
dp[i].insert(a-b);
dp[i].insert(a*b);
if(b>0) dp[i].insert(a/b);
}
}
}
}
for(int i=0; i<8; ++i){
if(dp[i].count(number)){
answer = i+1;
break;
}
}
return answer;
}
'π μκ³ λ¦¬μ¦ > Programmers' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[C++/PGS] Lv.1 : κ°μΈμ 보 μμ§ μ ν¨κΈ°κ° (μΉ΄μΉ΄μ€ κΈ°μΆ) (0) | 2023.04.12 |
---|---|
[C++/PGS] Lv.5 : λ°©μ κ°μ (κ·Έλν) (0) | 2023.04.12 |
[C++/PGS] Lv.3 : μμ (κ·Έλν/Floyd-Warshall) (1) | 2023.03.03 |
[C++/PGS] Lv.3 : κ°μ₯ λ¨Ό λ Έλ (κ·Έλν/bfs) (0) | 2023.03.03 |
[C++/PGS] Lv.2 : H-index (μ λ ¬) (0) | 2023.03.03 |