11import java .util .*;
22
33class Solution {
4- HashSet <Integer > set = new HashSet <>();
5- ArrayList <HashSet <Integer >> dp = new ArrayList <>();
64
75 public int solution (int N , int number ) {
6+ ArrayList <HashSet <Integer >> dp = new ArrayList <>();
7+ HashSet <Integer > set = new HashSet <>();
88
9- for (int i = 0 ; i < 9 ; i ++){
9+ for (int i = 0 ; i < 9 ; i ++) {
1010 dp .add (new HashSet <>());
1111 }
1212
13- for (int i = 1 ; i < 9 ; i ++){
14- Set <Integer > currentSet = dp .get (i );
15-
13+ for (int i = 1 ; i < 9 ; i ++){
14+ HashSet <Integer > currentSet = dp .get (i );
1615 StringBuilder sb = new StringBuilder ();
17-
18- // 이어 붙이기
19- for (int j = 0 ; j < i ; j ++){
16+ for (int j = 0 ; j < i ; j ++){
2017 sb .append (N );
2118 }
19+
2220 currentSet .add (Integer .parseInt (sb .toString ()));
2321
2422 // 사칙연산
25- for (int j = 0 ; j < i ; j ++){
26- Set <Integer > setJ = dp .get (j );
27- Set <Integer > setK = dp .get (i -j );
23+ for (int j = 1 ; j < i ; j ++) {
24+ HashSet <Integer > setJ = dp .get (j );
25+ HashSet <Integer > setK = dp .get (i -j );
2826
2927 for (int num1 : setJ ){
3028 for (int num2 : setK ){
3129 currentSet .add (num1 + num2 );
32- currentSet .add (num1 - num2 );
33- currentSet .add (num1 * num2 );
34- if (num2 != 0 ) currentSet .add (num1 / num2 );
30+ currentSet .add (num1 - num2 );
31+ currentSet .add (num1 * num2 );
32+ if (num2 != 0 ) currentSet .add (num1 / num2 );
3533 }
3634 }
3735 }
3836
3937 if (currentSet .contains (number )) return i ;
40-
4138 }
39+
4240 return -1 ;
4341 }
4442}
0 commit comments