Hey there! So, another day, another problem! This time, it is called Odd Man Out, and it is quite simple to “get”:
You are hosting a party with
Gguests and notice that there is an odd number of guests! When planning the party you deliberately invited only couples and gave each couple a unique numberCon their invitation. You would like to single out whoever came alone by asking all of the guests for their invitation numbers.
Well, just get the number that’s not duplicated! There are many ways to do this, be it counting the occurrences of every member of the list and finding the “odd man”, or the way I did, which is basically some push and pop into a new list. Python code follows:
for case in range(1,int(raw_input())+1): # For all test cases
raw_input() # Discard the guest list size
guests = raw_input().split(" ") # Get the list of guest IDs
guestList = [] # Create an empty guest list
for guest in guests: # For all guests
if guestList.count(guest) > 0: # If it's already on the final list
guestList.remove(guest) # if is a couple, remove
else: # If it's not in the list yet
guestList.append(guest) # Add its ID
print "Case #%d: %s" % (case, guestList[0]) # Reports results
Needless to say, I bet there are many ways to improve this algorithm, but for this problem it performs decently, so no worries (unless you’re a hardcore bit banger). 🙂 See you tomorrow!
Comment this