How do I get better at solving AoC-like problems?
Recently I've started to solve Advent of Code problems. I'm doing not too bad. But I do realise, that I spend way too much time on the problems that come after around day 16 and I'm not quite sure if I'll be able to solve all of them eventually. Sometimes I need time to refresh my knowledge of a particular algorithm. Sometimes I don't even know what exactly I'm looking for. Obviously I lack some basic building blocks, but probably also a skill to apply them in the more practical settings.
I wonder what would be the best way to improve? How do I learn to recognize algorithms needed to solve the problem quicker?
P.S. I am doing it just for fun and self-improvement, i.e. it has nothing to do with the interview preps or something. I'm also the most comfortable with learning on my own through the books (though not limited to that), so any books recommendations are welcome. Would classical texts like CLRS help in this case? Any better options?