Olha acredito que tem que usar determinadas técnicas pra ir aprimorando na resolução dos algoritmos. Uma que uso pra resolver problemas é o teste de mesa
, fazendo no papel mesmo, anotando os valores que cada variavel recebe a cada execução do seu código.
Outra maneira é usar um debugger
, de acordo com IDE que você utilizar, essa é uma boa maneira de saber o que ta acontecendo em tempo real no seu código.