Back to Freecodecamp

Challenge 219: Anniversary Milestones

curriculum/challenges/english/blocks/daily-coding-challenges-python/699c8e045ee7cb94ed2322da.md

latest2.6 KB
Original Source

--description--

Given an integer representing the number of years a couple has been married, return their most recent anniversary milestone according to this chart:

Years MarriedMilestone
1"Paper"
5"Wood"
10"Tin"
25"Silver"
40"Ruby"
50"Gold"
60"Diamond"
70"Platinum"
  • If they haven't reached the first milestone, return "Newlyweds".

--hints--

get_milestone(0) should return "Newlyweds".

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_milestone(0), "Newlyweds")`)
}})

get_milestone(1) should return "Paper".

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_milestone(1), "Paper")`)
}})

get_milestone(8) should return "Wood".

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_milestone(8), "Wood")`)
}})

get_milestone(10) should return "Tin".

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_milestone(10), "Tin")`)
}})

get_milestone(26) should return "Silver".

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_milestone(26), "Silver")`)
}})

get_milestone(45) should return "Ruby".

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_milestone(45), "Ruby")`)
}})

get_milestone(50) should return "Gold".

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_milestone(50), "Gold")`)
}})

get_milestone(64) should return "Diamond".

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_milestone(64), "Diamond")`)
}})

get_milestone(71) should return "Platinum".

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_milestone(71), "Platinum")`)
}})

--seed--

--seed-contents--

py
def get_milestone(years):

    return years

--solutions--

py
def get_milestone(years):
    if years < 1:
        return "Newlyweds"

    milestones = [
        (1, "Paper"),
        (5, "Wood"),
        (10, "Tin"),
        (25, "Silver"),
        (40, "Ruby"),
        (50, "Gold"),
        (60, "Diamond"),
        (70, "Platinum")
    ]

    for year, milestone in reversed(milestones):
        if years >= year:
            return milestone