1. Постановка задачи — описание самой задачи;
2. Формализация — перевод на математический язык;
3. Алгоритмизация — придумывание алгоритма, который решает задачу;
4. Программирование — написание кода программы;
5. Тестирование — проверка работоспособности программы и корректности выходных данных.
Начинающие программисты пытаются пропустить последний этап. Я не советую так делать. Стоит сначала проверить самому программу на корректность работы, а потом сдавать в тестирующую систему. Постарайтесь придумать такие тесты, которые учитывают все различные ситуации.
Настоятельно советую всегда решать задачи по этим этапам. Так вы сэкономите массу времени и напишете правильные программы без ошибок.