This method uses a function call to determine the tiles you want changed and what to change them to using the replace() expression, as the tilemap is basically just a text field that has images instead of text. This results in little to (pretty much) no CPU usage. I use this method in my game I'm currently making and it uses less than 1% CPU to do.
I have commented every relevant bit of my script in the provided CAPX.