[BOJ/Greedy] 백준 1931 - 회의실 배정 (Java)
·
Coding Test/BOJ
1931 - 회의실 배정https://www.acmicpc.net/problem/1931 문제한 개의 회의실 -> 사용하고자 하는 N개의 회의에 대하여 회의실 사용표각 회의 I에 대해 시작시간, 끝나는 시간각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 최대 ㅐㄱ수(단, 회의는 한 번 시작하면 중간에 중단 X, 한 회의가 끝나는 것과 동시에 다음 회의 시작 O, 회의의 시작 시간과 끝나는 시간이 같을 수 있음 = 시작하자마자 끝나는 것)입력첫째 줄: 회의의 수 N (1 둘째 줄 ~ N + 1 줄: 각 회의의 정보 (회의 시작시간, 끝나는 시간)시작시간, 끝나는 시간 (자연수 or 0) 출력: 사용할 수 있는 회의의 최대 개수풀이끝나는 시간이 빠른 회의부터 선택끝나는 시간 기준으로 오름차순끝나는 시..
[BOJ/Greedy] 백준 11047 - 동전 0 (Java)
·
Coding Test/BOJ
11047 - 동전 0https://www.acmicpc.net/problem/11047문제동전 총 N종류 -> 적절히 사용해서 가치의 합을 K로 만들려고 함=> 필요한 동전 개수의 최솟값?입력첫째 줄: N, K (1 둘째 줄부터 ~ N개의 줄: 동전의 가치 $A_i$ 오름차순 (1 = 2인 경우에 $A_i%는 $A_{i-1}$의 배수) 출력: K원을 만드는데 필요한 동전 개수의 최솟값풀이가장 큰 가치 동전부터 최대한 많이 사용int min = 0;for (int i = N - 1; i >= 0; i--) { if (A[i] 코드import java.io.*;import java.util.*;// 동전 0public class boj_11047 { public static void main(..
[BOJ/DP] 백준 1912 - 연속합 (Java)
·
Coding Test/BOJ
1912 - 연속합https://www.acmicpc.net/problem/1912문제n개의 정수로 이뤄진 임의의 수열연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합ex. 10, -3, 3, 1, 5, 6, -35, 12, 21, -1-> 12 + 21 = 33 입력첫째 줄: 정수 n (1 둘째 줄: n개 정수로 이뤄진 수열(-1,000 출력: 가장 큰 합풀이`dp[i]`: i번째 수로 끝나는 연속합 중 최댓값`dp[i] = Math.max(arr[i], dp[i - 1] + arr[i])`i부터 새로 시작하기 or 이전 값에 i를 추가로 더하기(i까지의 연속합)코드import java.io.*;import java.util.*;// 연속합public class boj_1912 { ..
[BOJ/DP] 백준 11055 - 가장 큰 증가하는 부분 수열 / 11053 - 가장 긴 증가하는 부분 수열 (Java)
·
Coding Test/BOJ
11055 - 가장 큰 증가하는 부분 수열https://www.acmicpc.net/problem/11055문제ex. 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우합이 가장 큰 증가하는 부분 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8}=> 수열 A가 주어졌을 때, 그 수열의 증가하는 부분 수열 중에서 합이 가장 큰 것 ?입력첫째 줄: 수열 A의 크기 N (1 둘째 줄: 수열 A를 이루고 있는 $A_i$ (1 출력: 수열 A의 합이 가장 큰 증가하는 부분 수열의 합풀이`dp[i] = A[i]` => 자기 자신 포함`dp[i]`: i번째 원소를 마지막으로 하는 증가 부분 수열의 최대 합`dp[i] = Math.max(dp[i], dp[j] ..
[BOJ/DP] 백준 14501 - 퇴사 / 15486 - 퇴사 2 (Java)
·
Coding Test/BOJ
14501 - 퇴사https://www.acmicpc.net/problem/14501문제N + 1일째 되는 날 퇴사를 하기 위해서, 남은 N일 동안 최대한 많은 상담각각의 상담은 완료하는데 걸리는 기간 $T_i$, 상담을 했을 때 받을 수 있는 금액 $P_i$ex. N = 71일에 잡혀있는 상담: 총 3일, 받을 수 있는 금액: 10/ 5일에 잡혀있는 상담: 총 2일, 받을 수 있는 금액: 15-> 상담을 하는데 필요한 기간은 1보다 클 수 있기 때문에, 모든 상담 X1일에 상담 -> 2, 3일에는 상담 X/ 2일에 상담 -> 3, 4, 5, 6일에 상담 X/ N + 1일에는 회사에 없기 때문에 6, 7일에 상담 X=> 퇴사 전에 할 수 있는 상담의 최대 이익: 1일, 4일, 5일, 이익: 10 + 20..
[BOJ/DP] 백준 11726 - 2xn 타일링 / 11727 - 2xn 타일링 2 (Java)
·
Coding Test/BOJ
11726 - 2xn 타일링https://www.acmicpc.net/problem/11726문제2xn 크기의 직사각형 -> 1x2, 2x1 타일로 채우는 방법의 수를 구하는 프로그램입력: n (1 출력: 2xn 크기의 직사각형을 채우는 방법의 수 % 10,007풀이`dp[i]`: 가로 길이 i를 완전히 채우는 경우의 수`dp[i] = dp[i - 1] + dp[i - 2]` => 예시 참고 n = 1 -> 2x1 사각형 경우의 수: dp[1] = 12x1n = 2 -> 2x2 사각형 경우의 수: dp[2] = 22x1 2개/ 1x2 2개예시편의상 2x1을 세로, 1x2를 가로라고 했을 때n = 1세로 1개n = 2세로 2개가로 2개n = 3 세로 3개 = 세로 2개 + 세로 1개 가로 2개 + 세로 ..
kimmeoww
빙글빙글 돌아가는 Debug 하루