Hotel Floors

Posted: 23 Dec, 2020
Difficulty: Easy

PROBLEM STATEMENT

Try Problem

You are the receptionist at a hotel which has 10 floors, numbered from 0 to 9 and each floor has 26 rooms named from ‘A’ to ‘Z’. Being a receptionist your task is to handle booking queries.

You get booking queries in the form of strings of size 3 where 1st character is ‘+’ means room is booked, or ‘-’ means room is freed. Second character represents the floor of the room i.e, ‘0’ to ‘9’. Third character represents the room name i.e, ‘A’ to ‘Z’.

On booking of each room you collect 1 coin from the customer. After the end of all the booking queries you have to count the number of coins you collected.

You may assume that the list describes a correct sequence of bookings in chronological order i.e., only free rooms can be booked, and only booked rooms can be freed.

For Example:-

Consider booking queries to be ["+1A", "+3E", "-1A", "+4F", "+1A", "-3E"]
+1A: Room A on the 1st floor is booked and you collected 1 coin.
+3E: Room E on the 3rd floor is booked and you collected 1 coin.
-1A: Room A on the 1st floor is freed.
+4F: Room F on the 4th floor is booked and you collected 1 coin.
+1A: Room A on the 1st floor is booked and you collected 1 coin.
-3E: Room E on the 3rd floor is freed.
So you collected 4 coins.
Input format:
The first line of input contains an integer ‘T’ denoting the number of test cases.

The first line of each test case contains an integer ‘N’ representing the number of queries.

The second line of each test case contains N space-separated strings representing booking queries.
Output format :
For each test case, return an integer denoting the count of coins you collected.
Note:
You don’t need to print anything; it has already been taken care of. Just implement the given function.
Constraints:
1 <= T <= 10^2
0 <= N <= 6*10^2
|query.length| = 3

Time Limit: 1 sec
Approach 1

The approach is simple just count the number of room booked queries.

All we need to do is just traverse over each query string and check if the first character is a ‘+’. If it is a ‘+’ just increase the number of coins collected as the list describes a correct sequence of bookings, so each booking is valid.

 

The algorithm for the same is as follows:

 

  • Initialize count = 0.
  • Loop for each query:
    • If( query[0] == ‘+’ ):
      • count++
  • Return count.
Try Problem