[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
of
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