Нужно сначала ответить на несколько вопросов для себя:
Полностью ли я знаю школьную программу? Речь идет не о 5 по математике (многие олимпиадники и даже ученые-математики ошибаются в вычислениях), но полное понимание школьной программы.
Готов ли я тратить по 2-3 часа в день на математику? Школа здесь не учитывается.
Уровень олимпиады, которую нужно покорить, не очень высокий (олимпиады от университетов, региональные и городские олимпиады).
Большинство олимпиадников начинают заниматься математикой еще в 6-7 классе, обычно на такие занятия отправляют сами школы. Помимо кружков и самостоятельного обучения есть еще сборы и мат. лагеря, где обучение происходит практически круглосуточно.
Помимо школьной программы олимпиадники знают множество дополнительных тем (комбинаторика, теория чисел, теория графов, математический анализ, теория групп, множество различных тем в геометрии и стереометрии...), множество разных приемов в решении задач (принцип крайнего, индукция, от противного...). Так обычно олимпиадник высокого уровня знает 1 курс математических предметов университета. Обычно олимпиадные задачи высоких уровней имеют конкретную направленность, не имея соответствующего знания в данной области математики решить ее просто не получится. Олимпиады низких уровней обычно берут задачи из других мест и не имеют специфики, на них имея большое количество нарешанных задач можно найти знакомую.
Получить все эти знания очень сложно. Нужно искать учителя, который готовит олимпиадников, чаще такие есть в университетах. Большинство школьных учителей не могут подготовить школьника даже к городскому уровню олимпиад, так как не обладают необходимыми знаниями и навыками.
Онлайн-курсы в помощь — "Фоксфорд", например, предлагают тучу курсов по разным предметам в формате вебинаров с преподами МГУ, Бауманки, МФТИ и т.д. и сравнительно недорого.