For me, clean code means that someone else can read and improve upon the code to extend its usefulness. Or it means that I can read something that I wrote long ago, and understand what assumptions I made at that time. Simply getting the right answer and moving on to the next thing doesn't provide the long-term value that I desire -- I want to write in a way that allows me to go from proof-of-concept to a bullet-proof solution, without having to restart from scratch.
My experience looking at classic algorithms written long ago in the C language, often leads me to wonder why does this even work? what was the programmer thinking? how can I adapt it to my special needs without breaking it?