Collections

358 pages

Algorithm

백준 알고리즘 문제 풀이를 다루며, Python과 C++ 언어로 작성된 코드와 문제 해결 과정을 공유하는 공간이다. '삶, 우주, 그리고 모든 것'에 대한 해답을 찾아가는 마음으로, 알고리즘의 매력을 느끼고 싶은 모든 이를 위해 다양한 풀이를 준비하고 있다. 초심자부터 고급 개발자까지 누구나 문제 해결을 통해 깊이 있는 사고를 키워나갈 수 있도록 꾸준히 업데이트하고 있다

[Algorithm] C++ 백준 4001번: 미노타우르스 미궁

좌·우수법(Left/Right-hand rule)으로 정의되는 두 개의 표준 경로를 계산하고, 2차원 누적합으로 직사각형 내부 경로/장애물 포함 여부를 O(1)에 판정합니다. 각 좌표별로 ‘막히는 최소 정사각형 크기’와 ‘설치 가능한 최대 정사각형 크기’를 각각 이분 탐색해 교집합이 존재하면 정답 후보로 갱신하여, 가장 작은 변의 길이와 위치를 찾습니다.
[Algorithm] C++ 백준 4001번: 미노타우르스 미궁

[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