https://school.programmers.co.kr/learn/courses/30/lessons/42895
#include <string>
#include <vector>
#include <unordered_set>
using namespace std;
const int Get_N(int N, int idx)
{
int result = N;
for (int i = 0; i < idx; ++i)
result = result * 10 + N;
return result;
}
int solution(int N, int number) {
//24.10.25
vector<unordered_set<int>> dp(8);
for (int k = 0; k < 8; ++k)
{
dp[k].insert(Get_N(N, k));
for (int i = 0; i < k; ++i)
{
for (int j = 0; j < k; ++j)
{
if (i + j + 1 != k) continue;
for (const auto& a : dp[i])
{
for (const auto& b : dp[j])
{
dp[k].insert(a + b);
if (a - b > 0) dp[k].insert(a - b);
dp[k].insert(a * b);
if (a / b > 0) dp[k].insert(a / b);
}
}
}
}
if (dp[k].find(number) != dp[k].end()) return k + 1;
}
return -1;
}
'Coding Test > Programmers' 카테고리의 다른 글
[Programmers] (그리디 or 완전탐색) Lv 2. 마법의 엘리베이터 (0) | 2024.12.18 |
---|---|
[Programmers] (깊이/너비 우선 탐색(DFS/BFS)) Lv 2. 타겟 넘버 (0) | 2024.10.29 |
[Programmers] (깊이/너비 우선 탐색(DFS/BFS)) Lv 3. 네트워크 (2) | 2024.10.23 |
[Programmers] (완전탐색) Lv 2. 피로도 (3) | 2024.10.23 |
[Programmers] (동적계획법(Dynamic Programming)) Lv 3. 정수 삼각형 (0) | 2024.10.21 |
댓글