본문 바로가기

dp24

[백준] 12865번 평범한 배낭 JAVA (자바) 풀이 문제 12865 준서가 여행에 필요하다고 생각하는 N개의 물건이 있다 각 물건은 무게 W와 가치 V를 가지는데 해당 물건을 배낭에 넣어서 가면 준서가 V만큼 즐길 수 있다 최대 K만큼의 무게만을 넣을 수 있는 배낭만 들고 다닐 수 있다 물건들의 가치의 최댓값 구하기 [입력] : 첫 줄에 물품의 수 N(1 ≤ N ≤ 100), 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000) : 두 번째 줄부터 N개의 줄까지 물건 무게 W(1 ≤ W ≤ 100,000), 해당 물건의 가치 V(0 ≤ V ≤ 1,000) ( 모든 수는 정수 ) 4 7 6 13 4 8 3 6 5 12 [출력] : 한 줄에 배낭에 넣을 수 있는 물건들의 가치합의 최댓값을 출력 14 [코드] import java.io.*; public cla.. 2024. 2. 5.
[백준] 11053번 가장 긴 증가하는 부분 수열 JAVA (자바) 풀이 문제 11053번 : 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우, 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. 각 dp[] 의 길이들은 다음 부분 수열을 의미하는 것이다 출처 https://st-lab.tistory.com/137 dp[0] = 10 이제 나온 것 {10} 중에 가장 길다 = 1 dp[1] = 20 이제 나온 것 {10, 20} 중에 가장 길다 = 2 dp[2] = 10 이제 나온 것 {10, 20} 중에 10까지는 길이가 1밖에 안된다 dp[3] = 30 이제 나온 것 {10, 20, 30} 중에 가장 길다 = 3 dp[4] = 20 이.. 2023. 9. 25.
[백준] 1463번 1로 만들기 JAVA (자바) 풀이 문제 1463번 : 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 X가 3으로 나누어 떨어지면, ÷ 3 X가 2로 나누어 떨어지면, ÷ 2 - 1 위와 같은 연산 세 개를 사용해서 N = 1을 만들려고 할 때 연산의 최소 횟수를 출력 [입력] : 첫 줄에 N (1 ≤ N ≤ 106) [출력] : 첫째 줄에 연산을 하는 횟수의 최솟값을 출력 [설명] DP 알고리즘 : 이미 계산된 결과는 별도의 메모리 영역에 저장하여 다시 계산하지 않음으로서 수행 시간 단축시키는 방법 DP 구현 방법은 일반적으로 Top-down(하향식)과 Bottom-up(상향식)으로 구성된다 1) Top-down(하향식) 하위 문제를 재귀적으로 호출하여 해결함으로서 상위 문제를 해결하는 방식 이 때 해결해놓은 하위 문제를 저장해.. 2023. 9. 25.
[백준] 2839번 설탕 배달 JAVA (자바) 풀이 문제 2839번  :  설탕 N킬로그램 배달해야 한다    설탕은 봉지에 담겨져 있다 ( 3킬로그램 봉지 or 5킬로그램 봉지 )    봉지의 최소 개수를 구해라 [입력] :  첫 줄에 N  [출력] :  봉지의 최소 개수 출력    ( 정확하게 N킬로그램 만들 수 없다면 -1 출력 )[설명] DP 알고리즘: 이미 계산된 결과는 별도의 메모리 영역에 저장하여 다시 계산하지 않음으로서 수행 시간 단축시키는 방법  DP 구현 방법은 일반적으로 Top-down(하향식)과 Bottom-up(상향식)으로 구성된다 1) Top-down(하향식)     하위 문제를 재귀적으로 호출하여 해결함으로서 상위 문제를 해결하는 방식      이 때 해결해놓은 하위 문제를 저장해 놓기 위해 Memoization사용 public.. 2023. 9. 22.