강의로 돌아가기
PMS

효율성에서만 시간초과라고 뜨네요...

while문이랑 for문을 이중으로 써서 그런건가요??

작성중인 코드―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
import java.util.*;
class Solution {
  public int[] solution(int[] prices) {
        int[] answer = new int[prices.length];
        Queue<Integer> q = new LinkedList<Integer>();
        boolean is_f = true;

        for(int i : prices){
            q.offer(i);
        }

        while(!q.isEmpty()){
            int answer_index = prices.length - q.size();
            int temp = q.poll();

            for(int i=0;i<q.size();i++){

                if(temp>q.peek() && is_f){
                    answer[answer_index] = i+1;
                    is_f =false;
                }

                else if(is_f){
                    answer[answer_index] = q.size();
                }

                q.offer(q.poll());
            }

            is_f = true;
        }
        return answer;
    }
}
  • 이승윤
    q.offer(q.poll()) 이 부분으로 때문에 q가 비워지지 않아서 while 이 무한 실행되지 않을까 싶네요. 이승윤 2019.01.15 16:26
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.