John has invited some friends. His list is:
```
s = "Fred:Corwill;Wilfred:Corwill;Barney:Tornbull;Betty:Tornbull;Bjon:Tornbull;Raphael:Corwill;Alfred:Corwill";
```

Could you make a program that 
- makes this string uppercase
- gives it sorted in alphabetical order by last name. 

When the last names are the same, sort them by first name.
Last name and first name of a guest come in the result between parentheses separated by a comma.

So the result of function `meeting(s)` will be:
```
"(CORWILL, ALFRED)(CORWILL, FRED)(CORWILL, RAPHAEL)(CORWILL, WILFRED)(TORNBULL, BARNEY)(TORNBULL, BETTY)(TORNBULL, BJON)"
```
It can happen that in two distinct families with the same family name two people have the same first name too.

# Notes
- You can see another examples in the "Sample tests".

Source: codewars | Difficulty: EASY
Tags: Fundamentals

Starter code: def meeting(s):
	

Solutions:
def meeting(s):
	return ''.join(sorted(('({1}, {0})'.format(*x.split(':')) for x in s.upper().split(';'))))


def meeting(s):
	s = s.upper()
	s = s.split(';')
	array = []
	string = ''
	for i in s:
		i = i.split(':')
		string = '(' + i[1] + ', ' + i[0] + ')'
		array.append(string)
	array.sort()
	output = ''
	for j in array:
		output += j
	return output


def meeting(s):
	return ''.join((f'({a}, {b})' for (a, b) in sorted((name.split(':')[::-1] for name in s.upper().split(';')))))


def meeting(s):
	names = s.upper().split(';')
	return ''.join(sorted(('({1}, {0})'.format(*n.split(':')) for n in names)))


meeting = lambda s: ''.join(sorted(('(%s, %s)' % tuple(e.split(':')[::-1]) for e in s.upper().split(';'))))


import re

def meeting(s):
	return ''.join(sorted(re.sub('(\\w+):(\\w+);?', '(\\2, \\1);', s.upper()).split(';')))


from functools import reduce

def meeting(s):
	people = [i.split(':')[::-1] for i in s.upper().split(';')]
	people.sort(key=lambda x: x[0] + ' ' + x[1])
	return reduce(lambda acc, x: acc + '(' + x[0] + ', ' + x[1] + ')', people, '')


from functools import cmp_to_key

def meeting(s):

	def comp(a, b):
		if a[1] == b[1]:
			return -1 if a[0] < b[0] else 1
		else:
			return -1 if a[1] < b[1] else 1
	w = map(lambda x: x.split(':'), s.upper().split(';'))
	u = sorted(w, key=cmp_to_key(comp))
	return ''.join(map(lambda a: '(' + a[1] + ', ' + a[0] + ')', u))


meeting = lambda s: ''.join(('({}, {})'.format(ln, fn) for (ln, fn) in sorted((p.split(':')[::-1] for p in s.upper().split(';')))))