FWIW, I learned Rust and Python using AoC - I don't see why you couldn't pick up ELisp the same way. As long as you have an idea how to solve the problem, you should be able to express that algorithm in ELisp.
The one challenge you may face is the availability of data structures in ELisp (stacks, queues, deques, etc), but I'm not an expert there, so someone else may have some pointers.