b를 기준으로 오름차순으로 정렬하고, b가 같을 때는 a를 기준으로 내림차순으로 정렬한다.
나는 우선순위 큐를 사용하여 b가 작을수록 우선순위가 높고, b가 같으면 a가 클수록 우선순위가 높도록 설정한 뒤, 우선순위 큐에서 범위 (a,b)를 하나씩 꺼내었다.
PriorityQueue<Range> pq = new PriorityQueue<>(M,
(Range r1, Range r2) -> (r1.b == r2.b) ? r2.a - r1.a : r1.b - r2.b);
book 일차원 배열을 만들어서 책이 이미 다른사람에게 주어진 경우 true, 그렇지 않은 경우에는 false 이다.
범위 내에 있는 책이라면 번호에 상관없이 아무거나 꺼내서 학생에게 주어도 상관없다.
소스코드 :
'BOJ' 카테고리의 다른 글
[백준 1783번] 병든 나이트 (java) (0) | 2021.03.06 |
---|---|
[백준 1041번] 주사위 (java) (0) | 2021.03.06 |
[백준 1744번] 수 묶기 (java) (2) | 2021.03.04 |
[백준 1541번] 잃어버린 괄호 (java) (0) | 2021.03.04 |
[백준 11399번] ATM (java) (0) | 2021.03.04 |