백준 다이나믹 프로그래밍

코딩테스트/백준

[백준] 2839번 - 설탕 배달 (파이썬)

" 백준 2839번 설탕 배달 파이썬 풀이 " 2839번 문제는 다음과 같은 조건을 가진 문제이다 " 문제 조건 " 3, 5kg의 설탕봉지로 정확히 NKg의 설탕을 옮기는 가장 최소한의 봉지 수를 구하기 Nkg을 만들 수 없다면 -1 출력 3 4: dp[5] = 1 주어진 무게가 3kg, 5kg이므로 3kg,5kg을 만들 수 있는 경우는 결국 1이다. 그리고 4kg을 만들 수 있는 경우는 절대 없기 때문에 -1로 초기화 해준다. 이 과정은 if문을 통해 주어진 n의 값을 봐가면서 수행해야 Index Error가 나지 않는다. 그보다 큰 값들의 경우엔 반복문을 통해 이후의 dp 테이블 값을 구해주면 되는데 조건을 잡아 값을 초기화 해준다. 조건1. 이전 값(현재 값에서 -3한 값과 -5 한 값)이 만들어질..

코딩테스트/백준

[백준] 2156 - 포도주 시식 (파이썬)

백준 2156번 포도주 시식 문제 파이썬 " 💡 문제 해결 아이디어 " 연속으로 포도주 잔을 선택하는 문제인데 연속으로 2잔만 마실 수 있고 여러 경우 중 최선의 값을 구한다는 점에서 Dynamic Programming 알고리즘 문제라는 점을 알아낼 수 있었다. 문제 해결 방식 : 보텀업 방식 n : 포도주 잔의 개수 arr : 테이블 별 포도주의 양을 담는 변수 dp[i] : i번째 줄까지에서 마실 수 있는 최대 포도주 양 dp 배열 초기화 dp[0] = arr[0] : 2개 연속으로 마실 수 있는데 1개만 있기 때문에 arr[0] 으로 초기화 dp[1] = arr[0] : 2개 연속으로 마실 수 있는데 2개만 있기 때문에 arr[0] + arr[1] 로 초기화 dp[2] = max(arr[0] + a..

PgmJUN
'백준 다이나믹 프로그래밍' 태그의 글 목록