The easiest way, code wise, would be to just draw the rooms yourself, and use a TileMap to put them in a grind following your algorithm. However, this means a lot of art work for each room.
What many games prefer to do instead, is to split the rooms into many little pieces. You could have a chest square, a spike square, etc, that are placed in a grid creating the room.
You would use your algorithm to determine big rectangles where to place rooms, pick randomly which one to place, and then fill the big room squares with the small visual squares.
The documentation on TileMap can be found here.