How should I post my better solution?
Like any other answer - post an answer. Do not post the answer as an edit to the question.
Should I un-accept the not-so-good answer I accepted before?
Any time a better answer comes along, be it yours or of someone else, accept the best answer. Up-vote those that are useful.
After accepting an answer, it would be wise to first let a new answer (yours or of someone else) to age (perhaps a few days) to see how the community rates it. Use that feedback as partpart of your decision to accept the new one or not.