{"id":1417,"date":"2020-06-11T03:35:44","date_gmt":"2020-06-11T03:35:44","guid":{"rendered":"https:\/\/blog.prepbytes.com\/?p=1417"},"modified":"2022-03-30T23:02:10","modified_gmt":"2022-03-30T23:02:10","slug":"profit-priority","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/profit-priority\/","title":{"rendered":"PROFIT PRIORITY"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645181506474-Article_460.png\" alt=\"\" \/><\/p>\n<h3>CONCEPTS USED:<\/h3>\n<blockquote>\n<p>Greedy algorithm.<\/p>\n<\/blockquote>\n<h3>DIFFICULTY LEVEL:<\/h3>\n<blockquote>\n<p>Hard<\/p>\n<\/blockquote>\n<h3>PROBLEM STATEMENT<code>(<\/code>SIMPLIFIED<code>)<\/code>:<\/h3>\n<blockquote>\n<p>One day Aman went to the office and his boss gave him some tasks to finish within the given deadline and told him to earn maximum profit. Boss gave him a set of N task where each taski has a deadline and profit associated with it. Each task takes 1 unit of time to complete and only one job can be scheduled at a time. Aman can earn the profit if and only if the job is completed by its deadline. Aman has to find the maximum profit but he doesn&#8217;t know how to maximize profit so he asks for your help.<\/p>\n<\/blockquote>\n<p><a href=\"https:\/\/mycode.prepbytes.com\/problems\/greedy-algo\/JOBSEUEPROB\" title=\"Go to mycode.prepbytes.com\" target=\"_blank\" rel=\"noopener noreferrer\"><u><strong><\/strong><\/u><\/a><\/p>\n<h4>For Example :<\/h4>\n<pre><code>7\n1 1 3\n2 3 5\n3 4 20\n4 3 18\n5 2 0\n6 1 6\n7 2 30\n\n74\n\nThe first task completed will be task-6 with a profit of 6.\nThe second task completed will be task-7 with a profit of 30.\nThe third task completed will be task-4 with a profit of 18.\nThe last task completed will be task-3 with a profit of 20.\nSo maximum profit = 6+30+18+20=74.<\/code><\/pre>\n<h3>OBSERVATION:<\/h3>\n<pre><code>Input:  Five Jobs with following\ndeadlines and profits\n  ID   Deadline    Profit\n  x       2        100\n  y       1        19\n  z       2        27\n  u       1        25\n  v       3        15\nOutput: Following is maximum \nprofit sequence of jobs\n        z,x,v\n\nTo solve this problem, the given jobs are sorted according to their profit in a descending order.\nFrom the given jobs, first we select x, as it can be completed within its deadline and gives maximum profit.\n\nNext, z is selected as it gives more profit compared to y.\n\ny cannot be selected as its deadline is over.\n\nThe job u is discarded as it cannot be executed within its deadline.\n\nv is selected as it can be completed within its deadline.\n\nThus, the solution is the sequence of jobs (z,x,v), which are being completed within their deadline and give maximum profit.\n\nTotal profit 100+ 27+15 =142.<\/code><\/pre>\n<h3>SOLVING APPROACH:<\/h3>\n<blockquote>\n<p>This question is the famous <em>job sequencing<\/em> problem which uses greedy approach .<\/p>\n<p>Since our objective is to select jobs that will give us higher profit,to solve this problem, the given jobs are sorted according to their profit in a descending order. <\/p>\n<p>We adopt a greedy algorithm to determine how the next job is selected for an optimal solution. The greedy algorithm described below always gives an optimal solution to the job sequencing problem.<\/p>\n<ol>\n<li>\n<p>Sort all the given jobs in the decreasing order of their profits.<\/p>\n<\/li>\n<li>\n<p>Iterate on jobs in decreasing order of profit.For each job , do the following :<\/p>\n<\/li>\n<li>\n<p>Find a time slot i, such that slot is empty and i &gt;&gt;<\/p>\n<\/li>\n<li>\n<p>If no such i exists, then ignore the job.<\/p>\n<\/li>\n<\/ol>\n<\/blockquote>\n<h3>SOLUTIONS:<\/h3>\n<p>\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_1418 {\r\n\toverflow:hidden;\r\n\tdisplay:block;\r\n\twidth:100%;\r\n\tborder:0px solid #ddd;\r\n\tmargin-bottom:30px;\r\n\t}\r\n\r\n#tab_container_1418 .tab-content{\r\n\tpadding:20px;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n\tmargin-top: 0px;\r\n\tbackground-color:#ffffff !important;\r\n\tcolor: #000000 !important;\r\n\tfont-size:16px !important;\r\n\tfont-family: Open Sans !important;\r\n\t\r\n\t\tborder: 1px solid #e6e6e6 !important;\r\n\t}\r\n#tab_container_1418 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_1418 .wpsm_nav-tabs > li.active > a, #tab_container_1418 .wpsm_nav-tabs > li.active > a:hover, #tab_container_1418 .wpsm_nav-tabs > li.active > a:focus {\r\n\tcolor: #000000 !important;\r\n\tcursor: default;\r\n\tbackground-color: #ffffff !important;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n}\r\n\r\n#tab_container_1418 .wpsm_nav-tabs > li > a {\r\n    margin-right: 0px !important; \r\n    line-height: 1.42857143 !important;\r\n    border: 1px solid #d5d5d5 !important;\r\n    border-radius: 0px 0px 0 0 !important; \r\n\tbackground-color: #e8e8e8 !important;\r\n\tcolor: #000000 !important;\r\n\tpadding: 15px 18px 15px 18px !important;\r\n\ttext-decoration: none !important;\r\n\tfont-size: 14px !important;\r\n\ttext-align:center !important;\r\n\tfont-family: Open Sans !important;\r\n}\r\n#tab_container_1418 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_1418 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_1418 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_1418 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_1418 .wpsm_nav-tabs > li > a:hover , #tab_container_1418 .wpsm_nav-tabs > li > a:focus {\r\n    color: #000000 !important;\r\n    background-color: #e8e8e8 !important;\r\n\tborder: 1px solid #d5d5d5 !important;\r\n\t\r\n}\r\n#tab_container_1418 .wpsm_nav-tabs > li > a .fa{\r\n\r\nmargin-right:5px !important;\r\n\r\nmargin-left:5px !important;\r\n\r\n\r\n}\r\n\r\n\t\t#tab_container_1418 .wpsm_nav-tabs a{\r\n\t\t\tbackground-image: none;\r\n\t\t\tbackground-position: 0 0;\r\n\t\t\tbackground-repeat: repeat-x;\r\n\t\t}\r\n\t\t\t\r\n\r\n\r\n#tab_container_1418 .wpsm_nav-tabs > li {\r\n    float: left;\r\n    margin-bottom: -1px !important;\r\n\tmargin-right:0px !important; \r\n}\r\n\r\n\r\n#tab_container_1418 .tab-content{\r\noverflow:hidden !important;\r\n}\r\n\r\n\r\n@media (min-width: 769px) {\r\n\r\n\t#tab_container_1418 .wpsm_nav-tabs > li{\r\n\t\tfloat:left !important ;\r\n\t\t\t\tmargin-right:-1px !important;\r\n\t\t\t\t\t}\r\n\t#tab_container_1418 .wpsm_nav-tabs{\r\n\t\tfloat:none !important;\r\n\t\tmargin:0px !important;\r\n\t}\r\n\r\n\t#tab_container_1418 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1418 .wpsm_nav{\r\n\t\t\t}\r\n\r\n}\r\n\r\n\r\n\r\n@media (max-width: 768px) {\r\n\t#tab_container_1418 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_1418 .wpsm_nav{\r\n\t\t\t}\r\n}\r\n\r\n\r\n\t.wpsm_nav-tabs li:before{\r\n\t\tdisplay:none !important;\r\n\t}\r\n\r\n\t@media (max-width: 768px) {\r\n\t\t\t\t\r\n\t\t\t\t.wpsm_nav-tabs{\r\n\t\t\tmargin-left:0px !important;\r\n\t\t\tmargin-right:0px !important; \r\n\t\t\t\r\n\t\t}\r\n\t\t\t\t#tab_container_1418 .wpsm_nav-tabs > li{\r\n\t\t\tfloat:none !important;\r\n\t\t}\r\n\t\t\t\r\n\t}\t\t\t\t<\/style>\r\n\t\t\t\t<div id=\"tab_container_1418\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_1418\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  class=\"active\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_1418_1\" aria-controls=\"tabs_desc_1418_1\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_1418_2\" aria-controls=\"tabs_desc_1418_2\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C++<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_1418_3\" aria-controls=\"tabs_desc_1418_3\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>Java<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t\t\t\t <\/ul>\r\n\r\n\t\t\t\t\t  <!-- Tab panes -->\r\n\t\t\t\t\t  <div class=\"tab-content\" id=\"tab-content_1418\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane  in active \" id=\"tabs_desc_1418_1\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"c\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n#include &lt;stdio.h&gt;\r\n\r\n    #define MAX 1002\r\n\r\n    typedef struct Job {\r\n    int id;\r\n    int deadline;\r\n    int profit;\r\n    } Job;\r\n\r\n    void jobSequencingWithDeadline(Job jobs[], int n);\r\n\r\n    int minValue(int x, int y) {\r\n    if(x &lt; y) return x;\r\n    return y;\r\n    }\r\n\r\n    int main(void) {\r\n     int n;scanf(&quot;%d&quot;,&amp;n);\r\n    Job jobs[n];\r\n    for(int i=0;i&lt;n;i++)\r\n    {\r\n    scanf(&quot;%d%d%d&quot;,&amp;jobs[i].id,&amp;jobs[i].deadline,&amp;jobs[i].profit);\r\n    }\r\n    Job temp;\r\n    int i,j;\r\n    for(i = 1; i &lt; n; i++) {\r\n    for(j = 0; j &lt; n - i; j++) {\r\n      if(jobs[j+1].profit &gt; jobs[j].profit) {\r\n        temp = jobs[j+1];\r\n        jobs[j+1] = jobs[j];\r\n        jobs[j] = temp;\r\n      }\r\n    }\r\n    }\r\n\r\n    jobSequencingWithDeadline(jobs, n);\r\n\r\n    return 0;\r\n    }\r\n\r\n    void jobSequencingWithDeadline(Job jobs[], int n) {\r\n     int i, j, k, maxprofit;\r\n    int timeslot[n];\r\n    int filledTimeSlot = 0;\r\n    int dmax = 0;\r\n    for(i = 0; i &lt; n; i++) {\r\n    if(jobs[i].deadline &gt; dmax) {\r\n      dmax = jobs[i].deadline;\r\n    }\r\n    }\r\n    for(i = 1; i &lt;= dmax; i++) {\r\n    timeslot[i] = -1;\r\n    }\r\n\r\n     for(i = 1; i &lt;= n; i++) {\r\n    k = minValue(dmax, jobs[i - 1].deadline);\r\n    while(k &gt;= 1) {\r\n      if(timeslot[k] == -1) {\r\n        timeslot[k] = i-1;\r\n        filledTimeSlot++;\r\n        break;\r\n      }\r\n      k--;\r\n    }\r\n    if(filledTimeSlot == dmax) {\r\n      break;\r\n    }\r\n    }\r\n\r\n    maxprofit = 0;\r\n    for(i = 1; i &lt;= dmax; i++) {\r\n    maxprofit += jobs[timeslot[i]].profit;\r\n    }\r\n    printf(&quot;%d&#92;n&quot;, maxprofit);\r\n    }\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_1418_2\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"cpp\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\n#include&lt;iostream&gt; \r\n    #include&lt;algorithm&gt; \r\n    using namespace std;\r\n    struct Job \r\n    { \r\n    int id;      \/\/ Job Id \r\n    int dead;    \/\/ Deadline of job \r\n    int profit;  \/\/ Profit if job is over before or on deadline \r\n    }; \r\n     bool comparison(Job a, Job b) \r\n    { \r\n     return (a.profit &gt; b.profit); \r\n     } \r\n    int printJobScheduling(Job arr[], int n) \r\n    { \r\n    sort(arr, arr+n, comparison); \r\n\r\n    int result[n]; \/\/ To store result (Sequence of jobs) \r\n    bool slot[n];  \/\/ To keep track of free time slots \r\n    int maxpro=0;\r\n    \/\/ Initialize all slots to be free \r\n    for (int i=0; i&lt;n; i++) \r\n        slot[i] = false; \r\n\r\n    \/\/ Iterate through all given jobs \r\n    for (int i=0; i&lt;n; i++) \r\n    { \r\n       \/\/ Find a free slot for this job (Note that we start \r\n       \/\/ from the last possible slot) \r\n       for (int j=min(n, arr[i].dead)-1; j&gt;=0; j--) \r\n       { \r\n          \/\/ Free slot found \r\n          if (slot[j]==false) \r\n          { \r\n             result[j] = i;  \/\/ Add this job to result \r\n             slot[j] = true; \/\/ Make this slot occupied \r\n             maxpro+=arr[i].profit;\r\n             break; \r\n          } \r\n       } \r\n    } \r\n    return maxpro;\r\n    \/\/ Print the result \r\n    \/\/ for (int i=0; i&lt;n; i++) \r\n     \/\/  if (slot[i]) \r\n       \/\/  cout &lt;&lt; arr[result[i]].id &lt;&lt; &quot; &quot;; \r\n    } \r\n    int main() \r\n    { \r\n    int n;\r\n    cin&gt;&gt;n;\r\n    Job arr[n];\r\n     for(int i=0;i&lt;n;i++)\r\n      cin&gt;&gt;arr[i].id&gt;&gt;arr[i].dead&gt;&gt;arr[i].profit;\r\n    cout &lt;&lt;printJobScheduling(arr, n); \r\n    return 0; \r\n    } \r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_1418_3\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"java\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\nimport java.util.*;\r\n    import java.util.ArrayList;\r\n     import java.util.Arrays;\r\n    import java.util.Collections;\r\n\r\n    class JobSequencingProblem {\r\n\r\n    static class Job implements Comparable&lt;Job&gt; {\r\n        int id;\r\n        int deadline;\r\n        int profit;\r\n\r\n        @Override\r\n        public int compareTo(Job otherJob) {\r\n            return otherJob.profit - this.profit;\r\n        }\r\n\r\n        public Job(int id, int deadline, int profit) {\r\n            this.id = id;\r\n            this.deadline = deadline;\r\n            this.profit = profit;\r\n        }\r\n    }\r\n\r\n    public static void main(String[] args) {\r\n      Scanner sc = new Scanner(System.in);\r\n            int n = sc.nextInt();\r\n        JobSequencingProblem jobSequencing = new JobSequencingProblem();\r\n        ArrayList&lt;Job&gt; jobs = new ArrayList&lt;Job&gt;();\r\n     for(int i=0;i&lt;n;i++)\r\n            {\r\n                int id = sc.nextInt();\r\n                int dead = sc.nextInt();\r\n                int pro = sc.nextInt();\r\n                jobs.add(new Job(id, dead, pro));\r\n            }\r\n        Collections.sort(jobs);\r\n        jobSequencing.printJobSequence(jobs, jobs.size());\r\n\r\n    }\r\n\r\n    private void printJobSequence(ArrayList&lt;Job&gt; jobs, int size) {\r\n        Boolean[] slots = new Boolean[size];\r\n        Arrays.fill(slots, false);\r\n\r\n        int result[] = new int[size];\r\n\r\n        for (int i = 0; i &lt; size; i++) {\r\n            for (int j = jobs.get(i).deadline - 1; j &gt;= 0; j--) {\r\n                if (!slots[j]) {\r\n                    result[j] = i;\r\n                    slots[j] = true;\r\n                    break;\r\n                }\r\n            }\r\n        }\r\n      int ans=0;\r\n        for (int i = 0; i &lt; jobs.size(); i++) {\r\n            if (slots[i])\r\n                ans+=jobs.get(result[i]).profit;\r\n        }\r\n        System.out.println(ans);\r\n    }\r\n    }\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\r\n\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t <\/div>\r\n\t\t\t\t\t \r\n\t\t\t\t <\/div>\r\n <script>\r\n\t\tjQuery(function () {\r\n\t\t\tjQuery('#myTab_1418 a:first').tab('show')\r\n\t\t});\r\n\t\t\r\n\t\t\t\tjQuery(function(){\r\n\t\t\tvar b=\"fadeIn\";\r\n\t\t\tvar c;\r\n\t\t\tvar a;\r\n\t\t\td(jQuery(\"#myTab_1418 a\"),jQuery(\"#tab-content_1418\"));function d(e,f,g){\r\n\t\t\t\te.click(function(i){\r\n\t\t\t\t\ti.preventDefault();\r\n\t\t\t\t\tjQuery(this).tab(\"show\");\r\n\t\t\t\t\tvar h=jQuery(this).data(\"easein\");\r\n\t\t\t\t\tif(c){c.removeClass(a);}\r\n\t\t\t\t\tif(h){f.find(\"div.active\").addClass(\"animated \"+h);a=h;}\r\n\t\t\t\t\telse{if(g){f.find(\"div.active\").addClass(\"animated \"+g);a=g;}else{f.find(\"div.active\").addClass(\"animated \"+b);a=b;}}c=f.find(\"div.active\");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\r\n\t\tfunction do_resize(){\r\n\r\n\t\t\tvar width=jQuery( '.tab-content .tab-pane iframe' ).width();\r\n\t\t\tvar height=jQuery( '.tab-content .tab-pane iframe' ).height();\r\n\r\n\t\t\tvar toggleSize = true;\r\n\t\t\tjQuery('iframe').animate({\r\n\t\t\t    width: toggleSize ? width : 640,\r\n\t\t\t    height: toggleSize ? height : 360\r\n\t\t\t  }, 250);\r\n\r\n\t\t\t  toggleSize = !toggleSize;\r\n\t\t}\r\n\r\n\r\n\t<\/script>\r\n\t\t\t\t\r\n\t\t\t<br \/>\n[forminator_quiz id=&quot;1419&quot;]<\/p>\n<p>This article tried to discuss the concept of <strong>Greedy algorithm<\/strong>. Hope this blog helps you understand and solve the problem. To practice more problems on Greedy algorithm you can check out <a href=\"#\"><\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CONCEPTS USED: Greedy algorithm. DIFFICULTY LEVEL: Hard PROBLEM STATEMENT(SIMPLIFIED): One day Aman went to the office and his boss gave him some tasks to finish within the given deadline and told him to earn maximum profit. Boss gave him a set of N task where each taski has a deadline and profit associated with it. [&hellip;]<\/p>\n","protected":false},"author":52,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[99],"tags":[102,101,103,65],"class_list":["post-1417","post","type-post","status-publish","format-standard","hentry","category-greedy-algo-interview-coding","tag-algorithm","tag-greedy","tag-greedy-algorithm","tag-interview"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Greedy Algo Interview Coding | Profit Priority | Prepbytes<\/title>\n<meta name=\"description\" content=\"Our Objective Is to Select Jobs That Will Give Us Higher Profit,to Solve This Problem, the Given Jobs Are Sorted According to Their Profit in a Descending Order.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prepbytes.com\/blog\/profit-priority\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Greedy Algo Interview Coding | Profit Priority | Prepbytes\" \/>\n<meta property=\"og:description\" content=\"Our Objective Is to Select Jobs That Will Give Us Higher Profit,to Solve This Problem, the Given Jobs Are Sorted According to Their Profit in a Descending Order.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/profit-priority\/\" \/>\n<meta property=\"og:site_name\" content=\"PrepBytes Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prepbytes0211\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-11T03:35:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-30T23:02:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645181506474-Article_460.png\" \/>\n<meta name=\"author\" content=\"Prepbytes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prepbytes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/profit-priority\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/profit-priority\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"PROFIT PRIORITY\",\"datePublished\":\"2020-06-11T03:35:44+00:00\",\"dateModified\":\"2022-03-30T23:02:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/profit-priority\/\"},\"wordCount\":281,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/profit-priority\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645181506474-Article_460.png\",\"keywords\":[\"algorithm\",\"Greedy\",\"greedy algorithm\",\"interview\"],\"articleSection\":[\"Greedy Algo Interview Coding\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/profit-priority\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/profit-priority\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/profit-priority\/\",\"name\":\"Greedy Algo Interview Coding | Profit Priority | Prepbytes\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/profit-priority\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/profit-priority\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645181506474-Article_460.png\",\"datePublished\":\"2020-06-11T03:35:44+00:00\",\"dateModified\":\"2022-03-30T23:02:10+00:00\",\"description\":\"Our Objective Is to Select Jobs That Will Give Us Higher Profit,to Solve This Problem, the Given Jobs Are Sorted According to Their Profit in a Descending Order.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/profit-priority\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/profit-priority\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/profit-priority\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645181506474-Article_460.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645181506474-Article_460.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/profit-priority\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Greedy Algo Interview Coding\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/greedy-algo-interview-coding\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"PROFIT PRIORITY\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/43.205.93.38\/#website\",\"url\":\"http:\/\/43.205.93.38\/\",\"name\":\"PrepBytes Blog\",\"description\":\"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING\",\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/43.205.93.38\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/43.205.93.38\/#organization\",\"name\":\"Prepbytes\",\"url\":\"http:\/\/43.205.93.38\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"contentUrl\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"width\":160,\"height\":160,\"caption\":\"Prepbytes\"},\"image\":{\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/prepbytes0211\/\",\"https:\/\/www.instagram.com\/prepbytes\/\",\"https:\/\/www.linkedin.com\/company\/prepbytes\/\",\"https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\",\"name\":\"Prepbytes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"caption\":\"Prepbytes\"},\"url\":\"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Greedy Algo Interview Coding | Profit Priority | Prepbytes","description":"Our Objective Is to Select Jobs That Will Give Us Higher Profit,to Solve This Problem, the Given Jobs Are Sorted According to Their Profit in a Descending Order.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/prepbytes.com\/blog\/profit-priority\/","og_locale":"en_US","og_type":"article","og_title":"Greedy Algo Interview Coding | Profit Priority | Prepbytes","og_description":"Our Objective Is to Select Jobs That Will Give Us Higher Profit,to Solve This Problem, the Given Jobs Are Sorted According to Their Profit in a Descending Order.","og_url":"https:\/\/prepbytes.com\/blog\/profit-priority\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2020-06-11T03:35:44+00:00","article_modified_time":"2022-03-30T23:02:10+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645181506474-Article_460.png","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/profit-priority\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/profit-priority\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"PROFIT PRIORITY","datePublished":"2020-06-11T03:35:44+00:00","dateModified":"2022-03-30T23:02:10+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/profit-priority\/"},"wordCount":281,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/profit-priority\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645181506474-Article_460.png","keywords":["algorithm","Greedy","greedy algorithm","interview"],"articleSection":["Greedy Algo Interview Coding"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/profit-priority\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/profit-priority\/","url":"https:\/\/prepbytes.com\/blog\/profit-priority\/","name":"Greedy Algo Interview Coding | Profit Priority | Prepbytes","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/profit-priority\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/profit-priority\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645181506474-Article_460.png","datePublished":"2020-06-11T03:35:44+00:00","dateModified":"2022-03-30T23:02:10+00:00","description":"Our Objective Is to Select Jobs That Will Give Us Higher Profit,to Solve This Problem, the Given Jobs Are Sorted According to Their Profit in a Descending Order.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/profit-priority\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/profit-priority\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/profit-priority\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645181506474-Article_460.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645181506474-Article_460.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/profit-priority\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Greedy Algo Interview Coding","item":"https:\/\/prepbytes.com\/blog\/category\/greedy-algo-interview-coding\/"},{"@type":"ListItem","position":3,"name":"PROFIT PRIORITY"}]},{"@type":"WebSite","@id":"http:\/\/43.205.93.38\/#website","url":"http:\/\/43.205.93.38\/","name":"PrepBytes Blog","description":"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING","publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/43.205.93.38\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/43.205.93.38\/#organization","name":"Prepbytes","url":"http:\/\/43.205.93.38\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/","url":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","contentUrl":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","width":160,"height":160,"caption":"Prepbytes"},"image":{"@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/prepbytes0211\/","https:\/\/www.instagram.com\/prepbytes\/","https:\/\/www.linkedin.com\/company\/prepbytes\/","https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA"]},{"@type":"Person","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e","name":"Prepbytes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","caption":"Prepbytes"},"url":"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/"}]}},"_links":{"self":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1417","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/comments?post=1417"}],"version-history":[{"count":7,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1417\/revisions"}],"predecessor-version":[{"id":8395,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/1417\/revisions\/8395"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=1417"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=1417"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=1417"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}