The Captain’s Room in Python | HackerRank Solution

Hello coders, today we are going to solve The Captain’s Room HackerRank Solution in Python.

The Captain's Room in Python


Mr. Anant Asankhya is the manager at the INFINITE hotel. The hotel has an infinite amount of rooms.

One fine day, a finite number of tourists come to stay at the hotel.
The tourists consist of:
→ A Captain.
→ An unknown group of families consisting of K members per group where K ≠ 1.

The Captain was given a separate room, and the rest were given one room per group.

Mr. Anant has an unordered list of randomly arranged room entries. The list consists of the room numbers for all of the tourists. The room numbers will appear K times per group except for the Captain’s room.

Mr. Anant needs you to help him find the Captain’s room number.
The total number of tourists or the total number of groups of families is not known to you.
You only know the value of K and the room number list.

Input Format

The first line consists of an integer, K, the size of each group.
The second line contains the unordered elements of the room number list.


  • 1 < K < 1000

Output Format

Output the Captain’s room number.

Sample Input

1 2 3 6 5 4 4 2 5 3 6 1 6 5 3 2 4 1 2 5 1 4 3 6 8 4 3 1 5 6 2 

Sample Output



The list of room numbers contains 31 elements. Since K is 5, there must be 6 groups of families. In the given list, all of the numbers repeat 5 times except for room number 8.
Hence, 8 is the Captain’s room number.

Solution – The Captain’s Room in Python

# Enter your code here. Read input from STDIN. Print output to STDOUT
N = input()
ROOM_LIST = input().split()

for ele in list(ROOM_SET):

CAPTAIN_ROOM_NUM = ROOM_SET.difference(set(ROOM_LIST)).pop()

Disclaimer: The above Problem (The Captain’s Room) is generated by Hacker Rank but the Solution is Provided by CodingBroz. This tutorial is only for Educational and Learning Purpose.

1 thought on “The Captain’s Room in Python | HackerRank Solution”

  1. k = int(input())
    room_number_list = list(map(int, input().split()))
    captain_room_number = (sum(set(room_number_list)) * k – sum(room_number_list)) // (k – 1)

Leave a Comment

Your email address will not be published. Required fields are marked *