Today's special moments become memories of tomorrow.

우선순위큐 2

[백준 1931번] 회의실 배정 (java)

www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 한 개의 강의실에 최대한 많은 회의를 넣기 위해서는 각 회의마다 끝나는 시간을 기준으로 오름차순 정렬을 해줘야 한다. 왜냐하면 앞에 회의가 일찍 끝날수록 뒤에 더 많은 회의가 회의실을 사용할 수 있기 때문이다. 먼저, 회의의 시작 정보와 끝나는 정보를 담은 Class 클래스를 생성하였다. 그리고 끝나는 시간이 짧은 순서대로 우선순위를 두어서 모든 Class를 우선순위 큐에 넣는다. 가장 먼저 큐에서 빠져나오는 회의는 모든 회의들 중 가장 일찍 끝나는 회의가 될 것이다. 예를 들어 문제 예제에서 (1, 4), (3, 5), (0..

BOJ 2021.03.04

[백준 11497번] 통나무 건너뛰기 (java)

11497번: 통나무 건너뛰기 남규는 통나무를 세워 놓고 건너뛰기를 좋아한다. 그래서 N개의 통나무를 원형으로 세워 놓고 뛰어놀려고 한다. 남규는 원형으로 인접한 옆 통나무로 건너뛰는데, 이때 각 인접한 통나무의 높이 www.acmicpc.net 통나무를 선형으로 배열하는 것이 아니라 원형으로 배열하기 때문에 처음과 끝이 만난다. 그러므로 통나무를 단순히 오름차순, 혹은 내림차순으로 정렬하면 최소 난이도를 구할 수 없다. 예를 들어 오름차순으로 정렬하면 가장 왼쪽에는 최소값, 가장 오른쪽에는 최대값이 배치되는데, 원형이기 때문에 둘 사이의 차이도 난이도에 포함된다. 최대값에서 최소값을 뺀 값은 가장 큰 차가 되므로 최소 난이도를 구할 수 없다. 그래서 최소 난이도를 구하기 위해서는 중간에 위치한 통나무의..

BOJ 2021.03.04