Skip to content

Commit d252c49

Browse files
committed
feat: Add 프린터 풀이
1 parent 13ac67e commit d252c49

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.hyeonah.javalabs.algorithm.programmers.stackandqueue;
2+
3+
import java.util.Collections;
4+
import java.util.PriorityQueue;
5+
6+
/**
7+
* 스택/큐 > 프린터
8+
*
9+
* keyword) PriorityQueue
10+
* - 내부 요소 heap 으로 이진트리 구조로 구성
11+
* - 시간 복잡도: O(NlogN)
12+
*/
13+
public class Solution42587 {
14+
15+
public static void main(final String[] args) {
16+
System.out.println(new Solution42587().solution(new int[]{2, 1, 3, 2}, 2));
17+
System.out.println(new Solution42587().solution(new int[]{1, 1, 9, 1, 1, 1}, 0));
18+
}
19+
20+
public int solution(final int[] priorities, final int location) {
21+
final PriorityQueue<Integer> queue = new PriorityQueue<>(Collections.reverseOrder());
22+
int answer = 1;
23+
24+
for (final int i : priorities) {
25+
queue.offer(i);
26+
}
27+
28+
while (!queue.isEmpty()) {
29+
for (int i = 0; i < priorities.length; i++) {
30+
if(queue.peek() == priorities[i]) {
31+
if(location == i) {
32+
return answer;
33+
}
34+
answer++;
35+
queue.poll();
36+
}
37+
}
38+
}
39+
40+
return answer;
41+
}
42+
}

0 commit comments

Comments
 (0)