https://medium.com/@gmdebugcloud/day-18-tackling-python-challenges-in-cs50ps-problem-set-2-question-1-e9a629769df3