Начальник кадровой службы хочет выяснить, сколько мужчин-однофамильцев работает в организации. У него есть список фамилий, и на основании этого списка нужно вычислить количество фамилий, которые совпадают с другими
Формат ввода
В первой строке указывается количество мужчин — сотрудников организации (N).
Затем идут N строк с фамилиями этих сотрудников в произвольном порядке.
Формат вывода:
Количество однофамильцев в организации.
Пример
Ввод
6
Иванов
Петров
Сидоров
Петров
Иванов
Петров
Вывод
5
Ввод
3
Иванов
Петров
Сидоров
Вывод
0
Решение
Накапливаем фамилии в частотный словарь, затем считаем количество элементов, значение которых больше единицы.
Посмотреть код
Решение
Python
namesakes = {}
for _ in range(int(input())):
name = input()
namesakes[name] = namesakes.get(name, 0) + 1
count = 0
for name in namesakes:
if namesakes[name] > 1:
count += namesakes[name]
print(count)
Решение с помощью списка и множества.
x = int(input())
s = set()
lst = list()
counter_f = 0
for i in range(x):
y = input()
s.add(y)
lst.append(y)
for j in s:
counter_e = 0
for k in lst:
if j == k:
counter_e += 1
if counter_e == 1:
counter_f += 0
else:
counter_f += counter_e
print(counter_f)