https://programmers.co.kr/learn/courses/30/lessons/42895
#include <string>
#include <unordered_set>
#include <vector>
using namespace std;
int solution(int N, int number) {
int answer = 0;
vector<unordered_set<int>> way(9);
int sum = 0;
for (int i = 1; i <= 8; i++) {
sum = 10 * sum + N;
way[i].insert(sum);
}
for (int k = 2; k <= 8; k++) {
for (int i = 1, j = k - i; i < k; i++, j--) {
for (int a : way[i]) {
for (int b : way[j]) {
int value = a + b;
way[k].insert(value);
value = a - b;
way[k].insert(value);
if (b!= 0) {
value = a / b;
way[k].insert(value);
}
value = a * b;
way[k].insert(value);
}
}
}
}
for(int i=1; i<=8; i++){
if(way[i].find(number)!= way[i].end()) return i;
}
return -1;
}
'프로그래머스' 카테고리의 다른 글
경주로 건설 C++ (0) | 2022.01.29 |
---|---|
네트워크 C++ (0) | 2022.01.23 |
거리두기 확인하기 C++ (0) | 2021.12.03 |
징검다리 건너기 C++ (0) | 2021.10.06 |
도둑질 C++ (0) | 2021.10.06 |