Olha eu diria que geralmente quando damos de cara com um problema mais denso como você comentou é normal (talvez até fundamental) pensar um pouco antes de começar escrever o código.

Com a prática o que provavelmente vai mudar é o tempo que você precisa de parar para pensar em como resolver o problema.

Mas talvez estudar um pouco de lógica matemática possa ajudar.

Ótimo ponto!

Eu adicionaria que isso é uma coisa que se consegue com a experiência, então: tenha experiências (pratique).

Um site que me ajuda muito quando eu tô me sentindo meio ruim de lógica é o Hackerrank.