Skip to content

Conversation

@zinnnn37
Copy link
Contributor

@zinnnn37 zinnnn37 commented Dec 10, 2025

🧷 문제 링크

Two Machines

🧭 풀이 시간

120분

👀 체감 난이도

✏️ 문제 설명

머신이 두 개 있고 N개의 작업이 있음
두 머신에서 각 작업을 수행하는 데 걸리는 시간이 주어짐
모든 작업을 전부 수행했을 때 최소 시간은?

🔍 풀이 방법

dp[i][j] = i개의 작업을 확인했고 A 머신에서 j시간을 사용하는 경우의 B 머신이 돌아가는 시간

B 머신의 시간 구하는 건 여느 점화식처럼 구하면 되고

dp[i][j] = Math.min(dp[i][j], dp[i - 1][j] + works[i][1]);

A 머신 시간은 인덱스 기준으로 구해야함

dp[i][j + works[i][0]] = Math.min(dp[i][j + works[i][0]], dp[i - 1][j]);

dp[N]에 N개의 작업을 모두 확인했을 때의 경우의 수들이 담겨있기 때문에 마지막에 dp[N] 확인하면서 jdp[N][j]값의 차이가 최소가 되는 시간을 구하면 됨
j dp[N][j] 중 큰 값이 정답

⏳ 회고

A의 시간을 인덱스로 두는 건 또 신기한 방법이네..
베낭문제 같기도하고.. 1차원으로 줄일 수 있을 듯
dp 플레는 진짜 못풀겠다 골드로 단련 더 해야겟다............
산책이나 하러 가야지....................

@zinnnn37 zinnnn37 added the hint 💡 반례를 참고했거나 힌트를 얻고 풀었을 때 label Dec 10, 2025
@ShinHeeEul ShinHeeEul merged commit 4379680 into main Dec 10, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hint 💡 반례를 참고했거나 힌트를 얻고 풀었을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants