Definitely look at the docs Angel linked you to. In general, let me add:
1. Change one thing at a time. I recommend doing the DB first. It should be very easy. Yes, you will have to install PostgreSQL on server C. Also, if this is a pre-existing content store you will have to dump the current database from PostgreSQL on server A and then load it into PostgreSQL on server C.
2. Make sure you have proper connectivitiy to all servers involved. You might have to open a firewall port on server C to allow Alfresco to talk to it (that's 5432 for PostgreSQL). You might also have to change the default PostgreSQL config to allow non-localhost hosts to access it. That is covered in the PostgreSQL documentation.
3. Next, work on the content storage and solr indices. Are you moving the solr WAR to server B or just the indices? If it is just the indices, then I assume the data and the content store will be set up as NFS mounts. If that is the case, it should be very easy on server A to simply mount the data directories and then, if needed, change the Alfresco config to point to the mount points.