Skip to content

Conversation

@zinnnn37
Copy link
Contributor

🧷 문제 링크

공평하게 팀 나누기

🧭 풀이 시간

100분

👀 체감 난이도

✏️ 문제 설명

사람들을 두 그룹으로 나누는데 그룹 간 사람의 수 차이는 1 이하
그룹 간 몸무게 차가 가장 적을 때 각 그룹의 몸무게 합을 오름차순으로 출력하시오

🔍 풀이 방법

dp[i][j] = i명 선택했을  몸무게 j를 만들  있는지

어차피 두 그룹으로 나누어야 하고 그룹 간 사람 수의 차이는 1 이하여야 해서 N/2까지만 확인함
같은 맥락에서 굳이굳이 sum 전부 확인할 필요 없을 것 같은데..

⏳ 회고

dp


뭔가뭔가 어제 비트코인 문제랑 비슷해서 boolean dp겠거니 했는데 더 어려웠음
본인의 인덱스보다 작은 인덱스를 가져와서 갱신하면 역방향이어야 하고
본인의 인덱스보다 큰 인덱스를 가져와서 갱신하면 정방향

dp[현재] = f(dp[다른 값])

다른 값 < 현재 → 역방향 필수 (작은 쪽이 먼저 갱신되면 중복)
다른 값 > 현재 → 정방향 필수 (큰 쪽이 나중에 갱신되어야 함)

@ShinHeeEul ShinHeeEul merged commit bfb9130 into main Nov 25, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants