정답형 구현
1dp[i][c] + take[i][c]
전체 상태를 남겨 전이식, 최종값, 선택 기록을 같이 검증한다.
보존 정보
값, 선택 여부, 행별 스냅샷
2차원 표는 설명과 복원에 강하고, 1차원 압축은 메모리에 강하다. take 또는 parent 기록은 그 사이의 비용을 명시한다.
dp[i][c] + take[i][c]
전체 상태를 남겨 전이식, 최종값, 선택 기록을 같이 검증한다.
best2d == best1d
작은 반례와 손계산 표로 압축 전후 값이 같은지 먼저 고정한다.
dp[c] from high to low
역순 순회로 중복 선택을 막고, 값만 필요하면 공간을 O(C)로 낮춘다.
walk parent or take
경로 요구가 있으면 별도 기록을 남기고, 디버깅은 작은 입력에 집중한다.