Charities (thousands upon thousands of them) exist because we live in a caring society and people want to do things to help others. People who contribute to charities, either buy donations or with their time and effort, are the same people who pay taxes to fund school, hospitals, roads, etc, etc.
I'm not sure I'm ready to accept that charities never solve anything. Take, for example, Cancer Research UK. Their push for research into the causes of and new treatments for various cancers have solved a lot of problems so that, for many cancers, people are more likely to die with cancer than of it.