Today's special moments become memories of tomorrow.

BOJ

[백준 9576번] 책 나눠주기 (java)

lotus lee 2021. 3. 4. 20:01

 

9576번: 책 나눠주기

백준이는 방 청소를 하면서 필요 없는 전공 서적을 사람들에게 나눠주려고 한다. 나눠줄 책을 모아보니 총 N권이었다. 책이 너무 많기 때문에 백준이는 책을 구분하기 위해 각각 1부터 N까지의

www.acmicpc.net

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