유블로그

[프로그래머스] 프린터 본문

알고리즘

[프로그래머스] 프린터

yujeong kang 2020. 12. 23. 23:51

프로그래머스 level2 프린터

 

소요시간 : 15분

 

문제가 하라는대로만 하면 풀리는 문제였다.

큐를 썼고 이터레이터를 써서 뒤에 중요도 더 높은 게 있으면 다시 offer하고 또 poll 하고 반복~!

 

처음에 cnt를 0으로 시작해서 답이 이상하게 나왔었다.. 한 5분은 그거 잡는다고 쓴 듯.. ㅋ

항상 차분하게 풀도록 노력해야겠당

 

    public int solution(int[] priorities, int location) {
    	Queue<int[]> q = new LinkedList<>();
    	for (int i = 0; i < priorities.length; i++) {
			q.offer(new int[] {i, priorities[i]});
		}

    	int[] front;
    	int cnt = 1;
    	while(!q.isEmpty()) {
    		front = q.poll();
    		
    		Iterator iter = q.iterator();
    		boolean in = false;
    		while(iter.hasNext()) {
    			if(front[1] < ((int[])iter.next())[1]) {
    				q.offer(new int[] {front[0], front[1]});
    				in = true;
    				break;
    			}
    		}
    		
    		if(!in) {
    			if(front[0] == location) return cnt;
    			cnt++;
    		}
    	}
    	
    	return -1;
    }

'알고리즘' 카테고리의 다른 글

[프로그래머스] 디스크컨트롤러  (0) 2021.01.02
[프로그래머스] K번째수  (0) 2020.12.26
[프로그래머스] 불량사용자  (0) 2020.12.22
[프로그래머스] 위장  (0) 2020.12.19
[프로그래머스] 전화번호목록  (0) 2020.12.19