Обычно решение задачи разделяется на следующие вещи:
- вдумчивое чтение задачи, уточнение вопросов
- декомпозиция задачи
- написание "на бумажке" каких нить схем, алгоритмов, классов и их связей , архитектуры
- перенос того что на бумажке в код
- отладка и проверка соответствие требованиям.
Вот краткий ответ на вопрос "как решить задачу". Следуйте этим пунктам и у вас все получится.