Primeiro concentre-se em resolver o problema da forma como você consegue. A elegância é obtida apenas com mais prática e o domínio de diferentes conceitos, principalmente estruturas de dados e a maneira de trabalhar com elas.
Outra dica é, depois de resolver uma série de problemas (vamos dizer, 50 problemas diferentes), volte ao primeiro e veja se tem algo que você melhoraria ou faria diferente. Sempre tem algo que nos chama a atenção quando voltamos a códigos antigos.
Mais uma dica: concentre-se em aprender as seguintes estruturas de dados:
- Lista
- Fila
- Pilha
- Árvore
- Binária de Busca
- B*
- Grafo
- Tupla
- Dicionário