-
Notifications
You must be signed in to change notification settings - Fork 0
/
Solution.java
59 lines (46 loc) · 1.47 KB
/
Solution.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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
//
// Programmers Algorithm 25(N으로 표현)
// https://programmers.co.kr/learn/courses/30/lessons/42895
// Created by hyungwook on 2021/07/23.
//
package com.company;
import java.util.ArrayList;
import java.util.TreeSet;
public class Solution {
ArrayList<TreeSet<Integer>> list = new ArrayList<>();
int temp;
public int solution(int N, int number) {
temp = N;
for (int i = 0; i < 8; i++) {
addNum(temp, i);
temp = temp * 10 + N;
}
for (int i = 0; i < 8; i++) {
TreeSet<Integer> treeSet = list.get(i);
boolean isContain = treeSet.contains(number);
if (isContain == true) {
return i + 1;
}
}
return -1;
}
public void addNum(int temp, int i) {
TreeSet<Integer> treeSet = new TreeSet<>();
treeSet.add(temp);
for (int j = 0; j < i; j++) {
TreeSet<Integer> treeSet1 = list.get(j);
TreeSet<Integer> treeSet2 = list.get(i - 1 - j);
for (Integer integer1 : treeSet1) {
for (Integer integer2 : treeSet2) {
treeSet.add(integer1 + integer2);
treeSet.add(integer1 - integer2);
treeSet.add(integer1 * integer2);
if (integer2 != 0) {
treeSet.add(integer1 / integer2);
}
}
}
}
list.add(treeSet);
}
}