Notice
Recent Posts
Recent Comments
Link
Dev.baelanche
[백준 1966] 프린터 큐 본문
반응형
큐는 인덱스가 없기 때문에 문서를 담을 큐와 우선순위를 담을 배열을 만들어 풀었다.
m 번째로 인쇄되는 문서는 this 라는 이름으로 지었다.
큐의 front 가 우선순위가 제일 높으면 pop 하고 그렇지 않으면 push, pop 을 한다.
동시에 동적배열에서도 우선순위가 제일 높으면 remove 하고 그렇지 않으면 add(get(0)), remove(0) 한다.
큐의 front 가 우선순위 최대값이어서 성공적으로 pop 되었을때만 카운트를 늘렸다.
직접 구현한 큐는 제외하고 올리겠다. (큐 소스는 여기에)
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Main q = new Main();
int t = sc.nextInt();
while(t-->0) {
int n = sc.nextInt();
int m = sc.nextInt();
ArrayList<Integer> order = new ArrayList<Integer>();
for(int i=0; i<n; i++) {
order.add(sc.nextInt());
if(i == m) q.push("this");
else q.push("docu");
}
int cnt = 0;
while(true) {
int bigest = 0;
for(int j=0; j<order.size(); j++) {
if(bigest < order.get(j))
bigest = order.get(j);
}
//System.out.println("큐 : " + q.toString());
//System.out.println("배열 : " + order.toString());
if(bigest == order.get(0)) {
cnt++;
if(q.front().equals("this")) break;
q.pop();
order.remove(0);
} else {
q.push(q.front());
q.pop();
order.add(order.get(0));
order.remove(0);
}
}
System.out.println(cnt);
order.clear();
q.clear();
}
sc.close();
}
반응형
'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글
[백준 11724] 연결 요소의 개수 (0) | 2019.04.08 |
---|---|
[백준 3034] 앵그리 창영 (0) | 2019.04.07 |
[백준 2164] 카드2 (0) | 2019.04.06 |
[백준 10845] 큐 (0) | 2019.04.06 |
[백준 9507] Generations of Tribbles (0) | 2019.04.06 |
Comments