Separate by Category Post Type

To get custom post type posts with specific category use custom taxonomy

Register the taxonomy name of the custom post type like location and then assign location to each post when you added new post.
Here is the example of the code

  add_action( 'init', 'hotels_my_taxonomy');
  function hotels_my_taxonomy(){
 // custom post type taxonomies
    $labels = array(
    'name' => 'Locations',
    'singular_name' => 'Location',
    'add_new' => 'Add Location',
    'add_new_item' => 'Add New Location',
    'all_items' => 'All Locations',
    'edit_item' => 'Edit Item',
    'new_item' => 'New Item',
    'view_item' => 'View Item',
    'update_item' => 'Update Location',
    'search_items' => 'Search Locations',
    'not_found' => 'No record found',
    'not_found_in_trash' => 'No items found in trash',
    'parent_item_colon' => 'Parent Item',
    'menu_name' => 'Locations'
    );
    $args = array(
        'labels' => $labels,
        'hierarchical' => true,
        'has_archive' => true,
        'rewrite' => array('slug' => 'hotels_location'),
        'show_ui' => true,
        'show_admin_column' => true,
        'query_var' => true,
        );
        register_taxonomy('hotels_location', array('hotels'), $args);
}

then

create taxonomy template page ‘taxonomy-hotels_location.php’

and add the query to get the posts with this category name

   $cat_name = single_cat_title;
   $args = array( 'category_name' => $cat_name, 'posts_per_page' => 12, 'order'=> 'ASC', 'post_type' => 'hotels', 'paged' => $paged);

All the work is done.Good luck