-
Notifications
You must be signed in to change notification settings - Fork 98
Open
Labels
@jiseung-kang
Description
@jiseung 님의 정답이에요! 👏👏👏
제출한 정답
function solution(alp, cop, problems) { let [alpMax, copMax] = [0, 0]; for (const [alp_req, cop_req] of problems) { alpMax = alpMax > alp_req ? alpMax : alp_req; copMax = copMax > cop_req ? copMax : cop_req; } const dp = Array.from({ length: alpMax + 1 }, () => Array.from({ length: copMax + 1 }, () => Infinity), ); alp = alp < alpMax ? alp : alpMax; cop = cop < copMax ? cop : copMax; for (let a = 0; a < alp + 1; a++) { for (let c = 0; c < cop + 1; c++) { dp[a][c] = 0; } } for (let a = alp; a < alpMax + 1; a++) { for (let c = cop; c < copMax + 1; c++) { if (a < alpMax) dp[a + 1][c] = dp[a + 1][c] < dp[a][c] + 1 ? dp[a + 1][c] : dp[a][c] + 1; if (c < copMax) dp[a][c + 1] = dp[a][c + 1] < dp[a][c] + 1 ? dp[a][c + 1] : dp[a][c] + 1; for (const [alp_req, cop_req, alp_rwd, cop_rwd, cost] of problems) { if (a >= alp_req && c >= cop_req) { const na = alpMax < a + alp_rwd ? alpMax : a + alp_rwd; const nc = copMax < c + cop_rwd ? copMax : c + cop_rwd; dp[na][nc] = dp[na][nc] < dp[a][c] + cost ? dp[na][nc] : dp[a][c] + cost; } } } } return dp[alpMax][copMax]; }
풀이 데이터
{ "probId": "118668", "author": "jiseung", "lang": "JavaScript", "createdAt": 1679485614483 }