--- id: 69a890af247de743333bd4cd title: "Challenge 224: Coffee Roast Detector" challengeType: 29 dashedName: challenge-224 --- # --description-- Given a string representing the beans used to make a cup of coffee, determine the roast of the cup. - The given string will contain the following characters, each representing a type of bean: - An apostrophe (`'`) is a light roast bean worth 1 point each. - A dash (`-`) is a medium roast bean worth 2 points each. - A period (`.`) is a dark roast bean worth 3 points each. - The roast level is determined by the average of all the beans. Return: - `"Light"` if the average is less than 1.75. - `"Medium"` if the average is 1.75 to 2.5. - `"Dark"` if the average is greater than 2.5. # --hints-- `detect_roast("''-''''''-'-''--''''")` should return `"Light"`. ```js ({test: () => { runPython(` from unittest import TestCase TestCase().assertEqual(detect_roast("''-''''''-'-''--''''"), "Light")`) }}) ``` `detect_roast(".'-''-''..'''.-.-''-")` should return `"Medium"`. ```js ({test: () => { runPython(` from unittest import TestCase TestCase().assertEqual(detect_roast(".'-''-''..'''.-.-''-"), "Medium")`) }}) ``` `detect_roast("--.''--'-''.--..-.--")` should return `"Medium"`. ```js ({test: () => { runPython(` from unittest import TestCase TestCase().assertEqual(detect_roast("--.''--'-''.--..-.--"), "Medium")`) }}) ``` `detect_roast("-...'-......-..-...-")` should return `"Dark"`. ```js ({test: () => { runPython(` from unittest import TestCase TestCase().assertEqual(detect_roast("-...'-......-..-...-"), "Dark")`) }}) ``` `detect_roast(".--.-..-......----.'")` should return `"Medium"`. ```js ({test: () => { runPython(` from unittest import TestCase TestCase().assertEqual(detect_roast(".--.-..-......----.'"), "Medium")`) }}) ``` `detect_roast("..-..-..-..-....-.-.")` should return `"Dark"`. ```js ({test: () => { runPython(` from unittest import TestCase TestCase().assertEqual(detect_roast("..-..-..-..-....-.-."), "Dark")`) }}) ``` `detect_roast("-'-''''''..-'.''-'.'")` should return `"Light"`. ```js ({test: () => { runPython(` from unittest import TestCase TestCase().assertEqual(detect_roast("-'-''''''..-'.''-'.'"), "Light")`) }}) ``` # --seed-- ## --seed-contents-- ```py def detect_roast(beans): return beans ``` # --solutions-- ```py def detect_roast(beans): total = 0 for bean in beans: if bean == "'": total += 1 elif bean == "-": total += 2 elif bean == ".": total += 3 avg = total / len(beans) if avg < 1.75: return "Light" elif avg <= 2.5: return "Medium" else: return "Dark" ```