강의로 돌아가기
만두피야

출력 범위를 초과한다는데.... 어떻게 개선하면 좋을까요?

public int solution(int[] numbers, int target) {
int answer = 0;

        Queue<Integer> bfs=new LinkedList<>();
        int cnt=0;

        bfs.add(numbers[0]);
        bfs.add(-numbers[0]);
        while(!bfs.isEmpty()) {
            //System.out.println(Arrays.toString(bfs.toArray()));
            //System.out.println(cnt);

            if(bfs.size()==Math.pow(2, numbers.length)) {
                Iterator<Integer> it =bfs.iterator();
                while(it.hasNext()) {
                    int data=it.next();
                    if(data==target)answer++;
                }
                break;  
            }      
            if(bfs.size()>Math.pow(2, cnt+1) ) {        
                    cnt++;      
            }

            int temp=bfs.poll();

            bfs.add(temp+numbers[cnt]);
            bfs.add(temp-numbers[cnt]);

            System.out.println("-----------------------");


        }

        return answer;
    }
1 개의 답변
김경환

System.out.println() 같이 출력하는 부분 다빼보세요.
출력이 너무 많이 되면 그런 오류가 나더라고요.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.