Hotel Prices in C++ – Hacker Rank Solution | HackerRank Programming Solutions | HackerRank C++ Solutions

Hello Programmers/Coders, Today we are going to share solutions of Programming problems of HackerRank of Programming Language C++ . At Each Problem with Successful submission with all Test Cases Passed, you will get an score or marks. And after solving maximum problems, you will be getting stars. This will highlight you profile to the recruiters.

In this post, you will find the solution for Hotel Prices in C++-HackerRank Problem. We are providing the correct and tested solutions of coding problems present on HackerRank. If you are not able to solve any problem, then you can take help from our Blog/website.

Use “Ctrl+F” To Find Any Questions Answer. & For Mobile User, You Just Need To Click On Three dots In Your Browser & You Will Get A “Find” Option There. Use These Option to Get Any Random Questions Answer.

Introduction To C++

C++ is a general-purpose programming language that was developed as an enhancement of the C language to include object-oriented paradigm. It is an imperative and a compiled language. 

C++ is a middle-level language rendering it the advantage of programming low-level (drivers, kernels) and even higher-level applications (games, GUI, desktop apps etc.). The basic syntax and code structure of both C and C++ are the same. 

C++ programming language was developed in 1980 by Bjarne Stroustrup at bell laboratories of AT&T (American Telephone & Telegraph), located in U.S.A. Bjarne Stroustrup is known as the founder of C++ language.

Hotel Prices in C++ - Hackerrank Solution

Problem

In this challenge, the task is to debug the existing code to successfully execute all provided test files
The given code defines two classes HotelRoom and HotelApartment denoting respectively a standard hotel room and a hotel apartment. An instance of any of these classes has two parameters: bedrooms and bathrooms denoting respectively the number of bedrooms and the number of bathrooms in the room.

The prices of a standard hotel room and hotel apartment are given as:

  • Hotel Room: 50.bedrooms + 100.bathrooms.
  • Hotel Apartment: The price of a standard room with the same number bedrooms and bathrooms plus 100.

For example, if a standard room costs 200, then an apartment with the same number of bedrooms and bathrooms costs 300.
In hotel’s codebase, there is a piece of code reading the list of rooms booked for today and calculates the total profit for the hotel. However, sometimes calculated profits are lower than they should be.

Debug the existing HotelRoom and HotelApartment classes’ implementations so that the existing code computing the total profit returns a correct profit.

Your function will be tested against several cases by the locked template code.


Input Format :

The input is read by the provided locked code template.
In the first line, there is a single integer n denoting the number of rooms booked for today.
After that n lines follow. Each of these lines begins with a room_type which is either standard or apartment, and is followed by the number of bedrooms and the number of bathrooms in this room.

Constraints :

  • 1 <= n <= 100
  • There is at least 1 and at most 5 bedrooms in a room
  • There is at least 1 and at most 5 bathrooms in a room

Output Format :

The output is produced by the provided and locked code template. It calculates the total profit by iterating through the vector of all rooms read from the input.


Sample Input :

2
standard 3 1
apartment 1 1

Sample Output :

500

Explanation :

In the sample we have one standard room with 3 bedrooms and 1 bathroom, and one apartment with one 1 bedrooms and 1 bathroom. The price for the room is 3.50+100 = 250 . The price for the apartment is 50+100+100 = 250. Thus the hotel profit is 250+250 = 500 as the sum of prices of both rooms.

Hotel Prices in C++ – Hacker Rank Solution
#include <iostream>
#include <vector>

using namespace std;

class HotelRoom 
{
    public:
        HotelRoom(int bedrooms, int bathrooms) 
        : bedrooms_(bedrooms), bathrooms_(bathrooms) {}
        
        int get_price() 
        {
            return 50*bedrooms_ + 100*bathrooms_;
        }
    private:
        int bedrooms_;
        int bathrooms_;
};

class HotelApartment : public HotelRoom 
{
    /* Hotel Prices in C++ - Hacker Rank Solution START */
    /* only change this line 
        HotelApartment(int bedrooms, int bathrooms) 
        : HotelRoom(bedrooms, bathrooms)
      TO
        HotelApartment(int bedrooms, int bathrooms) 
        : HotelRoom(bedrooms + 2, bathrooms)
    */
    public:
        HotelApartment(int bedrooms, int bathrooms) 
        : HotelRoom(bedrooms + 2, bathrooms) {}
    /* END Hotel Prices in C++ - Hacker Rank Solution END */
        int get_price() 
        {
            return HotelRoom::get_price() + 100;
        }
};

int main() 
{
    int n;
    cin >> n;
    vector<HotelRoom*> rooms;
    for (int i = 0; i < n; ++i) 
    {
        string room_type;
        int bedrooms;
        int bathrooms;
        cin >> room_type >> bedrooms >> bathrooms;
        if (room_type == "standard") 
        {
            rooms.push_back(new HotelRoom(bedrooms, bathrooms));
        } 
        else 
        {
            rooms.push_back(new HotelApartment(bedrooms, bathrooms));
        }
    }

    int total_profit = 0;
    for (auto room : rooms) 
    {
        total_profit += room->get_price();
    }
    cout << total_profit << endl;

    for (auto room : rooms) 
    {
        delete room;
    }
    rooms.clear();

    return 0;
}

Leave a Comment

Ads Blocker Image Powered by Code Help Pro
Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Refresh