1. 유형
우선순위큐
2. 풀이
우선순위큐에 들어갈 클래스를 만든다.
3. 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.StringTokenizer;
public class Main {
static int N, M, K;
static class Pair implements Comparable<Pair> {
int d, h, l;
boolean deca;
public Pair(int d, int h, int l, boolean deca) {
// TODO Auto-generated constructor stub
this.d = d;
this.h = h;
this.l = l;
this.deca = deca;
}
@Override
public int compareTo(Pair o) {
// TODO Auto-generated method stub
if (this.d == o.d) {
if (this.h == o.h) {
return this.l - o.l;
}
return o.h - this.h;
}
return o.d-this.d;
}
}
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(in.readLine(), " ");
N = Integer.valueOf(st.nextToken());
M = Integer.valueOf(st.nextToken());
K = Integer.valueOf(st.nextToken());
Queue<Pair> queue[] = new Queue[M];
for (int i = 0; i < M; i++) {
queue[i] = new LinkedList<>();
}
int idx = 0;
for (int i = 0; i < N; i++) {
st = new StringTokenizer(in.readLine(), " ");
int d = Integer.valueOf(st.nextToken());
int h = Integer.valueOf(st.nextToken());
int l = idx;
boolean deca = false;
if (i == K)
deca = true;
queue[idx++].add(new Pair(d, h, l, deca));
if (idx == M)
idx = 0;
}
int num=0;
PriorityQueue<Pair> pq = new PriorityQueue<>();
for(int i=0; i<M;i++) {
if(!queue[i].isEmpty())
pq.add(queue[i].poll());
}
while(true) {
Pair cur = pq.poll();
if(cur.deca) {
break;
}else {
if(!queue[cur.l].isEmpty()) {
pq.add(queue[cur.l].poll());
}
}
num++;
}
System.out.println(num);
}
}
4. 느낀점
처음에 시간초과가 떴는데,
시간복잡도를 생각하면서 풀어야겠다.
'알고리즘 > 백준' 카테고리의 다른 글
[백준 - 19952] 골드4 - 인성 문제 있어?? (0) | 2020.11.30 |
---|---|
[백준 - 20165] 골드5 - 인내의 도미노 장인 호석(java) (0) | 2020.11.30 |
[백준 - 2841] 실버2- 외계인의 기타 연주 (0) | 2020.11.27 |
[백준 - 1238] 골드3 - 파티 (0) | 2020.11.14 |
[백준 - 14698] 골드4 - 전생했더니 슬라임 연구자였던 건에 대하여(Hard) (0) | 2020.11.12 |