-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMain.java
45 lines (37 loc) Β· 1.18 KB
/
Main.java
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package DP.prg42895;
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
Solution sol = new Solution();
System.out.println(sol.solution(11, 11));
}
}
class Solution {
public int solution(int N, int number) {
if (N == number) return 1;
int ans = -1;
HashSet<Integer>[] set = new HashSet[9];
for (int i = 1; i <= 8; i++) set[i] = new HashSet<>();
set[1].add(N);
for (int i = 2; i <= 8; i++) {
StringBuilder sb = new StringBuilder();
for (int j = 0; j < i; j++) sb.append(N);
set[i].add(Integer.parseInt(sb.toString()));
for (int j = 1; j < i; j++) {
for (int v1 : set[j]) {
for (int v2 : set[i-j]) {
set[i].add(v1 + v2);
if (v1-v2 > 0) set[i].add(v1 - v2);
set[i].add(v1 * v2);
if (v2 != 0) set[i].add(v1 / v2);
}
}
}
if (set[i].contains(number)) {
ans = i;
break;
}
}
return ans;
}
}