반응형
📄 [DP] N으로 표현 C++ Source Code
#include <iostream>
#include <algorithm>
#include <unordered_set>
using namespace std;
#define MAX_V 8
int solution(int N, int number) {
int answer = EOF;
int base = 0;
// MARK: - 최솟값이 8보다 크면 -1을 return 합니다.
unordered_set<int> numbers[MAX_V];
// MARK: - 주어진 N을 최대 8번을 사용하여 만든다.
for (int ii = 0; ii < MAX_V; ii++) {
base = 10 * base + 1;
numbers[ii].insert(base * N);
}
for (int ii = 1; ii < MAX_V; ii++) {
for (int jj = 0; jj < ii; jj++) {
for (auto op1 : numbers[jj]) {
// MARK: - 각 피연산자들을 이용하여 연산을 수행한다.
for (auto op2 : numbers[ii - jj - 1]) {
numbers[ii].insert(op1 + op2); // + 연산을 수행한다.
numbers[ii].insert(op1 - op2); // - 연산을 수행한다.
numbers[ii].insert(op1 * op2); // * 연산을 수행한다.
// MARK: - 수식에는 괄호와 사칙연산만 가능하며 나누기 연산에서 나머지는 무시합니다.
if (op2 != 0) { numbers[ii].insert(op1 / op2); } // / 연산을 수행한다.
}
}
}
// MARK: - 주어진 Number를 N을 통해 만들어 진 경우
if (numbers[ii].count(number) > 0) { answer = ii + 1; break; }
}
return answer;
}
🚀 REFERENCE
반응형
'# 사용하지 않는 게시글 > 알고리즘 문제' 카테고리의 다른 글
[프로그래머스 - 스택/큐] 주식가격 (0) | 2019.07.28 |
---|---|
[BOJ - 2529번] 부등호 (0) | 2019.05.04 |
[프로그래머스 - 탐욕법] 가장 큰 수 (0) | 2019.04.21 |
[프로그래머스 - 탐욕법] 큰 수 만들기 (0) | 2019.04.21 |
[프로그래머스 - 완전탐색] 소수 찾기 (0) | 2019.04.15 |
댓글