my approach is the opposite ... attack the most difficult aspect of the challenge first ... get this working using the normal divide and conquer approach ... this often requires totally different inputs and outputs since its the inner core ... then work outward solving related issues until you read the outermost inputs and outputs
to me its critical to nail the hardest part first since if that portion cannot be solved or needs a radical rethink it will often require entirely new surrounding logic