Files
freeCodeCamp/curriculum/challenges/english/blocks/daily-coding-challenges-python/69373793f5a867f769cde13a.md

2.4 KiB

id, title, challengeType, dashedName
id title challengeType dashedName
69373793f5a867f769cde13a Challenge 155: Plant the Crop 29 challenge-155

--description--

Given an integer representing the size of your farm field, and "acres" or "hectares" representing the unit for the size of your farm field, and a type of crop, determine how many plants of that type you can fit in your field.

  • 1 acre equals 4046.86 square meters.
  • 1 hectare equals 10,000 square meters.

Here's a list of crops that will be given as input and how much space a single plant takes:

Crop Space per plant
"corn" 1 square meter
"wheat" 0.1 square meters
"soybeans" 0.5 square meters
"tomatoes" 0.25 square meters
"lettuce" 0.2 square meters

Return the number of plants that fit in the field, rounded down to the nearest whole plant.

--hints--

get_number_of_plants(1, "acres", "corn") should return 4046.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_number_of_plants(1, "acres", "corn"), 4046)`)
}})

get_number_of_plants(2, "hectares", "lettuce") should return 100000.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_number_of_plants(2, "hectares", "lettuce"), 100000)`)
}})

get_number_of_plants(20, "acres", "soybeans") should return 161874.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_number_of_plants(20, "acres", "soybeans"), 161874)`)
}})

get_number_of_plants(3.75, "hectares", "tomatoes") should return 150000.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_number_of_plants(3.75, "hectares", "tomatoes"), 150000)`)
}})

get_number_of_plants(16.75, "acres", "tomatoes") should return 271139.

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_number_of_plants(16.75, "acres", "tomatoes"), 271139)`)
}})

--seed--

--seed-contents--

def get_number_of_plants(field_size, unit, crop):

    return field_size

--solutions--

import math
def get_number_of_plants(field_size, unit, crop):
    crop_space = {
        "corn": 1,
        "wheat": 0.1,
        "soybeans": 0.5,
        "tomatoes": 0.25,
        "lettuce": 0.2
    }

    field_in_sqm = field_size * 4046.86 if unit == "acres" else field_size * 10000

    return math.floor(field_in_sqm / crop_space[crop.lower()])