Categories

19 pages

Dynamic Programming

[Algorithm] C++ 백준 6171번: 땅따먹기 - 묶음 할인 최소 비용 DP+CHT

여러 직사각형 땅을 묶어 살 때 비용은 (묶음 내 최대 W)*(묶음 내 최대 H)입니다. W 오름차순 정렬 후 같은 W는 최대 H로 병합하고, 뒤에서 앞으로 보며 지배된 직사각형을 제거해 H를 단조 감소로 만듭니다. 이후 dp[i]=min(dp[k]+W[i]*H[k+1])를 단조 Convex Hull Trick으로 O(n)에 계산하며, 정수 교차 비교와 __int128 중간 연산으로 오버플로를 방지합니다.
[Algorithm] C++ 백준 6171번: 땅따먹기 - 묶음 할인 최소 비용 DP+CHT

[Algorithm] C++/Python 백준 1126번 : 같은 탑

백준 1126번 '같은 탑' 문제는 여러 블록을 이용해 두 탑의 높이를 동일하게 만들되 가장 높은 탑의 높이를 최대화하는 최적화 문제입니다. 동적 계획법(DP)을 활용하여 두 탑의 높이 차이와 누적 높이를 효율적으로 관리하며, 상태 전이와 초기화 방안, 구현 방법을 상세하게 다룹니다. 본 글은 C++/Python 예제 코드 및 핵심 아이디어를 포함하여 문제 해결에 필요한 핵심 로직과 최적화 전략을 설명합니다.
[Algorithm] C++/Python 백준 1126번 : 같은 탑

[Algorithm] C++/Python 백준 24505번 : blobhyperthink

이 글에서는 백준 24505번 'blobhyperthink' 문제를 C++ 및 Python을 활용해 효율적으로 푸는 방법을 다룹니다. 최대 10^5 길이의 수열에서 길이가 11인 증가 부분 수열의 개수를 구하기 위해 동적 계획법과 Binary Indexed Tree(Fenwick Tree)를 활용하는 자세한 알고리즘 설계 및 최적화 과정을, 시간 복잡도와 실제 코드 구현과 함께 150자 내외로 명확하게 설명합니다.
[Algorithm] C++/Python 백준 24505번 : blobhyperthink