First, all beaches are public so if you see a beach, you can go there....
But I also suggest the "public" beach near Playa Dorada. It's also called "Orange" beach because there is a big Orange telephone billboard at the entrance. The entrance has a gate and usually a guard. It is next to the main entrance to Playa Dorada toward Puerto Plata. I like it because there is a good restaurant, a few shops, decent bathrooms, and is clean. You a walk a long way up and down the beach. And the water is pretty clean (no seaweed) and gets deep enough to swim with a nice sandy (not rocky) bottom. There is even a little shade!
There are also smaller, isolated beaches between Puerto Plata and Sosua where you can skinny dip!