title: Need help maximizing 3 factors in multiple, similar objects and ordering appropriately
body: <p>I need to write an algorithm in any language that would order an array based on 3 factors.  I use resorts as an example (like Hipmunk). Let's say I want to go on vacation. I want the cheapest spot, with the best reviews, and the most attractions. However, there is obviously no way I can find one that is #1 in all 3.</p>
  
  <blockquote>
    <p>Example (assuming there are 20 important attractions):</p>
    
    <p>Resort A:  $150/night...98/100 in favorable reviews...18 of 20 attractions<br>
    Resort B:  $99/night...85/100 in favorable reviews...12 of 20 attractions<br>
    Resort C:  $120/night...91/100 in favorable reviews...16 of 20 attractions  </p>
  </blockquote>
  
  <p>Resort B looks the most appealing in price, but is 3rd in the other 2 categories.  Wherein, I can choose resort C for only $21 more a night and get more attractions and better reviews.  Price is still important to me, but Resort A has outstanding reviews and a ton of attractions: Is $51 more worth the splurge?</p>
  
  <p>I want to be able to populate a list that will order a lit from "best to worst" (I quote bc it is subjective to the consumer). How would I go about maximizing the value for each resort?</p>
  
  <ul>
  <li>Should I put a weight for each factor (ie: 55% price, 30% reviews, 15% amenities) and come to the result of a set number and order them that way?</li>
  <li>Do I need a mode, median and range for all the hotels and determine the average price, and have the hotels around the average price hold the most weight?</li>
  </ul>
  
  <p>If it is a little confusing then check out www.hipmunk.com. They have an airplane sort they call Agony (and a hotel sort which is similar to my question) that they use as their own.  I used resorts as an example to make my question hopefully make a little more sense.  How does one put math to a problem like this?</p>