Java/Java-1차캐시 19

[백준] 14889 : 스타트와 링크

문제https://www.acmicpc.net/problem/14889  입출력 40 1 2 34 0 5 67 1 0 23 4 5 00아이디어재귀 종료 조건, 가지치기 조건 잘 설정하기(?)   코드  import java.io.BufferedReader;import java.io.FileInputStream;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static int N; // 내림차순 순서, 어떤 순서로 서 있는지 static int[][] box; static boolean[] visited; static int minDiff = Integer.MAX_VALUE; public static..

[백준] 14501 : 퇴사

문제https://www.acmicpc.net/problem/14501  입출력73 105 201 101 202 154 402 20045 아이디어 1) 백트래킹n이 최대 15이므로  선택 O, 선택 X 2) DPdp[i] // i번째 상담 결정시 최대 수익 (뒤부터)상담 O dp[i + T[i]] + P[i]상담 X dp[i + 1]  코드  import java.io.BufferedReader;import java.io.FileInputStream;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { static int N; // 내림차순 순서, 어떤 순서로 서 있는지 static int[] times;..

[백준] 1766 : 문제집

문제https://www.acmicpc.net/problem/1766  N개의 문제(1번~N번)가 있고, 일부 문제는 다른 문제를 먼저 풀어야 한다.가능한 한 쉬운 문제부터 풀어야 한다.즉, 진입 차수가 0인 노드 중에서 번호가 작은 문제부터 풀어야 한다.  입출력입력 4 24 23 1 출력3 1 4 2아이디어 위상정렬 + 우선순위 큐 위상 정렬(Topological Sorting)을 사용하여 순서를 정하면서, 가능한 한 숫자가 작은 문제 부터 풀기 위해 우선순위 큐를 활용한다  1. 그래프, 진입 차수 배열 생성2. 진입 차수가 0인 문제를 우선순위 큐에 저장 (문제 번호가 작은 것부터 풀어야하므로 오름차순 정렬이 필요)  코드  import java.io.BufferedReader;import jav..

[백준] 1005 : ACM Craft

문제 https://www.acmicpc.net/problem/1005 특정 건물이 먼저 완성되어야 함승리하기 위해 건물 W를 건설하는데 걸리는 최소 시간 구하기   입출력테스트 케이스 개수 T건물 개수 N 건설 순서 규칙 개수 K각 건물i의 건설 시간건설 순서 규칙 X Y -> X를 지어야 Y를 지을 수 있음목표 건물 W  아이디어위상 정렬을 활용한 건설 순서 및 최소 시간 계산 문제  위상 정렬 + DP 1. 진입 차수 배열 indegree 생성 - i번 건물을 짓기 전에 지어야 할 건물 개수2. 그래프 생성i번 건물 이후에 지어야 할 건물 목록3. resulti번 건물이 완성되는 최소 시간4. 위상 정렬 수행indegree[i] == 0 인 건물부터 큐에 넣고 시작 선행 건물이 모두 지어진 후 최대..