[Tutor] Fwd: Puzzle - Next Step to our interviewing process - Pramati Technologies!

Sunil Tech sunil.techspk at gmail.com
Tue Apr 15 08:24:45 CEST 2014

Kindly assess the problem carefully including all the possibilities,
including but not limited to:

1. Menu directly available(1 item or all items).

2. Menu available but distributed over multiple items.

3. Menu need not be present in all restaurants listed.

4. Menu not available at all.

Please complete the puzzle using the development language that you are
being interviewed for.

Most people have send responses that work for the dataset and the test
cases described along with the problem. However we do use a different
dataset and test cases that try and check some boundary conditions. We have
seen many solutions that work for the test cases below but fail with our
internally used test cases.

Because it is the Internet Age, but also it is a recession, the Comptroller
of the town of Jurgensville has decided to publish the prices of every item
on every menu of every restaurant in town, all in a single CSV file
(Jurgensville is not quite up to date with modern data
serializationmethods).  In addition, the restaurants of Jurgensville also
offer Value Meals, which are groups of several items, at a discounted
price.  The Comptroller has also included these Value Meals in the
file.  The file's format is:

 for lines that define a price for a single item:

restaurant ID, price, item label

 for lines that define the price for a Value Meal (there can be any number

items in a value meal)

restaurant ID, price, item 1 label, item 2 label, ...

 All restaurant IDs are integers, all item labels are lower case letters and

underscores, and the price is a decimal number.

 Because you are an expert software engineer, you decide to write a program
that accepts the town's price file, and a list of item labels that someone
wants to eat for dinner, and outputs the restaurant they should go to, and
the total price it will cost them.  It is okay to purchase extra items, as
long as the total cost is minimized.

Here are some sample data sets, program inputs, and the expected result:


Data File data.csv

1, 4.00, burger

1, 8.00, tofu_log

2, 5.00, burger

2, 6.50, tofu_log

 Program Input

program data.csv burger tofu_log

 Expected Output

=> 2, 11.5



Data File data.csv

3, 4.00, chef_salad

3, 8.00, steak_salad_sandwich

4, 5.00, steak_salad_sandwich

4, 2.50, wine_spritzer

Program Input

program data.csv chef_salad wine_spritzer

Expected Output

=> nil (or null or false or something to indicate that no matching

restaurant could be found)



Data File data.csv

5, 4.00, extreme_fajita

5, 8.00, fancy_european_water

6, 5.00, fancy_european_water

6, 6.00, extreme_fajita, jalapeno_poppers, extra_salsa

 Program Input

program data.csv fancy_european_water extreme_fajita

 Expected Output

=> 6, 11.0


 We have included all these samples in a single data file,
sample_data.csv.    Please include instructions for how to run your program
with your submission.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20140415/9760f121/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sample_data.csv
Type: application/vnd.ms-excel
Size: 322 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/tutor/attachments/20140415/9760f121/attachment-0001.xlb>

More information about the Tutor mailing list