制約
動かせない条件
制約とは、こちらの努力では動かせない条件のことです。
席の予約サービスなら、月の予算が5万円まで、公演初日まで8週間、といったものです。
要件は「こうしたい」ですが、制約は「こうするしかない」です。混ぜると、できない案を延々と検討することになります。
交渉できるなら交渉します。交渉して動いたなら、それは制約を更新したということです。
問題は、交渉していないのに無いことにする場合です。月5万円の前提で決めた案が、実は月30万円かかると後で分かります。
落とすときは理由を残す
制約の使い道は、案を落とすことです。ただし落としっぱなしにしません。
Python
{"name": "専用サーバー", "monthly_cost": 80000, "weeks": 6}
# 予算5万円 → 落とす。理由は「予算超過」理由を残す相手は、半年後の自分です。
見る場面があります。制約が変わったときです。
予算が20万円に増えた日、「予算超過で落とした案」だけを拾い直せます。理由が無いと、全部の案を最初から評価し直すことになります。
演習
案と制約を受け取って、通した案と、落とした案を理由付きで返します。
要件
- monthly_cost が max_monthly_cost を超えたら理由は "予算超過"
- 予算に収まっていて weeks が max_weeks を超えたら理由は "期間超過"
- どちらも超えていない案は name だけを kept へ入れる
ヒント
編集 ゆめさく編集部