백준

    [BOJ/JAVA] 1991번: 트리 순회

    1991번: 트리 순회문제 이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 프로그램을 작성하시오. 예를 들어 위와 같은 이진 트리가 입력되면, 전위 순회한 결과 : ABDCEFG // (루트) (왼쪽 자식) (오른쪽 자식) 중위 순회한 결과 : DBAECFG // (왼쪽 자식) (루트) (오른쪽 자식) 후위 순회한 결과 : DBEGFCA // (왼쪽 자식) (오른쪽 자식) (루트) 가 된다.https://www.acmicpc.net/problem/1991키워드이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal),..

    [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 보다 작거나 같은 자연수 구현잘못된 접근 방법데드라인의 오름차, 컵라면 수의 내림차순으로 정렬한..

    [BOJ/JAVA] 23254번: 나는 기말고사형 인간이야

    https://www.acmicpc.net/problem/23254 23254번: 나는 기말고사형 인간이야 192시간 동안 1번 과목을 35시간, 2번 과목을 43시간, 3번 과목을 30시간, 4번 과목을 17시간, 5번 과목을 37시간, 6번 과목을 30시간동안 공부하면 1, 2, 3, 4, 6번 과목은 100점, 5번 과목은 77점, 7번 과목은 www.acmicpc.net 나중에 리펙토링이 많이 필요한 문제 1 시간 공부할 때 마다 증가폭이 높은 과목을 선택하여 공부하는데, 100 점이 넘어 갔을 때 처리를 어떻게 하느냐가 문제. 나는 100점이 넘어가게 되면 100 - 원래 점수 를 이용하여 순수 증가량을 추출하였다. import java.io.BufferedReader; import java.i..

    [BOJ/JAVA] 2981번: 검문

    https://www.acmicpc.net/problem/2981 2981번: 검문 트럭을 타고 이동하던 상근이는 경찰의 검문을 받게 되었다. 경찰은 상근이가 운반하던 화물을 하나하나 모두 확인할 것이기 때문에, 검문하는데 엄청나게 오랜 시간이 걸린다. 상근이는 시간 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.Arrays; import java.util.TreeSet; public class java_2981..

    [BOJ/JAVA] 10166번: 관중석

    https://www.acmicpc.net/problem/10166 10166번: 관중석 KOI 공연장의 관중석에는 가운데에 있는 무대를 중심으로 반지름이 자연수인 동심원(중심이 같은 여러 원들) 위에 다음과 같이 좌석들이 배치되어 있다. 반지름이 1인 원 위에는 좌석이 1개, 반지 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.StringTokenizer; public class java_10166 { stat..

    [BOJ/JAVA] 2485번: 가로수

    https://www.acmicpc.net/problem/2485 2485번: 가로수 첫째 줄에는 이미 심어져 있는 가로수의 수를 나타내는 하나의 정수 N이 주어진다(3 ≤ N ≤ 100,000). 둘째 줄부터 N개의 줄에는 각 줄마다 심어져 있는 가로수의 위치가 양의 정수로 주어지며, 가 www.acmicpc.net import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class java_2485 { static int euclid(int a, int b) { w..

    [BOJ/JAVA] 9935번: 문자열 폭발

    https://www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 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.Stack; public class java_9935 { public ..