java
[BOJ/JAVA] 12764번: 싸지방에 간 준하
12764번: 싸지방에 간 준하현재 대한민국 해군에 소속되어있는 준하는 문제를 풀기 위해 매일같이 사이버 지식 정보방 통칭 싸지방에 다닌다. 그러나 최근 문제가 생겼다. 싸지방에 사람이 몰려 컴퓨터 수가 모자라게 된 것이다. 이런 사태를 도저히 용납할 수 없었던 준하는 곧 전역하는 선임을 설득해 민원을 넣도록 하는 데 성공했다.https://www.acmicpc.net/problem/12764키워드모든 사람은 싸지방에 들어왔을 때 비어있는 자리 중에서 번호가 가장 작은 자리에 앉는 것이 규칙모든 사람이 기다리지 않고 싸지방을 이용할 수 있는 컴퓨터의 최소 개수자리별로 몇 명의 사람이 사용했는가구현중요한 것은 우선순위 큐를 이용하여 가장 시간이 짧은 자리를 찾아가면 안된다는 것이다.예외가 발생하는 경우현재..
[BOJ/JAVA] 1374번: 강의실
1374번: 강의실첫째 줄에 강의의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 줄마다 세 개의 정수가 주어지는데, 순서대로 강의 번호, 강의 시작 시간, 강의 종료 시간을 의미한다. 강의 번호는 1부터 N까지 붙어 있으며, 입력에서 꼭 순서대로 주어지지 않을 수 있으나 한 번씩만 주어진다.https://www.acmicpc.net/problem/1374키워드최대한 적은 수의 강의실을 사용하여 모든 강의가 이루어지게 하고 싶다.구현우선 순위 큐를 이용하여 구현한다.static class Lecturenumber강의 번호startTime강의 시작 시각endTime강의 종료 시각lectureClassQueue강의가 끝나는 시각의 오름차순 정렬 강의 데이터를 강의 시작..
[BOJ/JAVA] 7662번: 이중 우선순위 큐
7662번: 이중 우선순위 큐이중 우선순위 큐(dual priority queue)는 전형적인 우선순위 큐처럼 데이터를 삽입, 삭제할 수 있는 자료 구조이다. 전형적인 큐와의 차이점은 데이터를 삭제할 때 연산(operation) 명령에 따라 우선순위가 가장 높은 데이터 또는 가장 낮은 데이터 중 하나를 삭제하는 점이다. 이중 우선순위 큐를 위해선 두 가지 연산이 사용되는데, 하나는 데이터를 삽입하는 연산이고 다른 하나는 데이터를 삭제하는 연산이다.https://www.acmicpc.net/problem/7662키워드데이터를 삽입하는 연산데이터를 삭제하는 연산은 또 두 가지로 구분우선순위가 가장 높은 것을 삭제우선순위가 가장 낮은 것을 삭제Q에 적용될 일련의 연산이 주어질 때 이를 처리한 후 최종적으로 Q..
[BOJ/JAVA] 1781번: 컵라면
1781번: 컵라면상욱 조교는 동호에게 N개의 문제를 주고서, 각각의 문제를 풀었을 때 컵라면을 몇 개 줄 것인지 제시 하였다. 하지만 동호의 찌를듯한 자신감에 소심한 상욱 조교는 각각의 문제에 대해 데드라인을 정하였다. 위와 같은 상황에서 동호가 2, 6, 3, 1, 7, 5, 4 순으로 숙제를 한다면 2, 6, 3, 7번 문제를 시간 내에 풀어 총 15개의 컵라면을 받을 수 있다.https://www.acmicpc.net/problem/1781키워드문제를 푸는데는 단위 시간 1각 문제의 데드라인은 N이하의 자연수이다.각 문제를 풀 때 받을 수 있는 컵라면 수와 최대로 받을 수 있는 컵라면 수는 모두 231 보다 작거나 같은 자연수 구현잘못된 접근 방법데드라인의 오름차, 컵라면 수의 내림차순으로 정렬한..
[java] 23293번: 아주 서바이벌
https://www.acmicpc.net/problem/23293 23293번: 아주 서바이벌 때는 2021년, 대한민국에는 '아주 서바이벌'이라는 온라인 게임이 대 유행 중이다. 이 게임은 바다 한가운데의 섬, 아주 아일랜드에서 벌어지는 배틀로얄 게임으로 플레이어들은 아주 아일랜드의 www.acmicpc.net import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.HashMap; import java.util.StringTokenizer; im..
[java] 11286번: 절댓값 합
https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Comparator; import java.util.Priori..