کارمند زیادی
⏱️ محدودیت زمان
۱ ثانیه
💾 محدودیت حافظه
۲۵۶ مگابایت
جو شرکت کوئرا خیلی صمیمی است و همهی افراد، از پیر تا جوان، همدیگر را با اسم کوچک صدا میزنند. به دلیل استخدامهای اخیر، شرکت با مشکل تشابه اسمی روبهرو شدهاست.
وقتی کسی نام «باقر» را صدا میزند، مشخص نیست منظور کدام باقر است، زیرا باقرهای زیادی در شرکت مشغول به کار هستند. برای رفع این مشکل، مدیر منابع انسانی تصمیم گرفتهاست برای هر کارمند یک کلاه رنگی بخرد. هدف این است که کارمندانی که اسم کوچک مشابه دارند، کلاههایی با رنگهای متفاوت داشته باشند.
با این روش، مشکل تا حدودی حل میشود؛ از این پس، کارکنان به جای صدا زدن اسم کوچک، از ترکیب «اسم کوچک + رنگ کلاه» استفاده میکنند. مثلاً «باقر صورتی» مشخصاً به یک فرد اشاره دارد و ابهام از بین میرود.
مدیر منابع انسانی از شما میخواهد برنامهای بنویسید که با دریافت اسامی کارکنان، حداقل تعداد رنگهای مختلف مورد نیاز برای کلاهها را محاسبه کند تا به هر فرد یک ترکیب یکتای «اسم کوچک + رنگ» اختصاص داده شود.
📥 ورودی
- در خط اول ورودی، عدد
nکه نشاندهندهی تعداد کارکنان شرکت است، به شما داده میشود. - در
nخط بعدی، در هر خط دو رشتهی متشکل از حروف کوچک الفبای انگلیسی، با حداکثر طول ۱۵ حرف، به شما داده میشود که با فاصله از هم جدا شدهاند و به ترتیب، نام و نام خانوادگی کارمندiـُم را نشان میدهند.
1 ≤ n ≤ 100
هیچ دو کارمندی در کوئرا نام و نام خانوادگی کاملاً یکسان ندارند.
📤 خروجی
در تنها خط خروجی، حداقل تعداد رنگهای مختلف لازم را چاپ کنید.
🎯 نمونه
ورودی ۱
5
bagher bagherian
bagher naderian
nader bagherian
nader naderian
steve jobs
خروجی ۱
2
با دو رنگ مختلف میتوان مشکل تشابه اسمی را حل کرد. بهعنوان مثال، میتوان به دو باقر و دو نادر کلاه با رنگهای متفاوت اختصاص داد.
ورودی ۲
5
bagher bagherian
bagher borna
bagher naderian
alfred nobel
alfred hitchcock
خروجی ۲
3
ورودی ۳
3
freddie mercury
brian may
roger taylor
خروجی ۳
1
هر فرد باید حتماً یک کلاه داشته باشد؛ بنابراین اگر هیچ اسم تکراریای وجود نداشت، میتوانیم یک رنگ کلاه تهیه کنیم و هر سه نفر با اسم متفاوت، همان رنگ را بر سر بگذارند. بههرحال، «فردی نارنجی»، «برایان نارنجی» و «راجر نارنجی» همه از هم مجزا هستند.
💡 چالشهای حل تمرین
❌ چرا اگر هیچ اسم تکراریای وجود نداشته باشد، پاسخ ۰ نمیشود؟
ما میخواهیم سر تمام کارمندان شرکت کلاه بگذاریم! بنابراین حتی اگر فقط یک باقر در شرکت باشد، باز هم باید کلاه بر سر بگذارد. درواقع خواستهی مدیر منابع انسانی از شما، بیشترین تعداد تکرار اسامی در شرکت است.
💡 راهنمایی
برای حل این تمرین، باید بیشترین تعداد تکرار یک نام را پیدا کنید. به عبارت دیگر:
- تعداد کارمندانی که نامهای تکراری دارند را بشمارید.
- پاسخ = بیشترین تعداد تکرار یک نام در بین کارمندان.
- اگر همهی نامها یکتا باشند، پاسخ
1است (چون هر کارمند یک کلاه نیاز دارد).
n = int(input())
name_count = {}
for _ in range(n):
first_name, last_name = input().split()
if first_name in name_count:
name_count[first_name] += 1
else:
name_count[first_name] = 1
max_count = max(name_count.values())
print(max_count)
- از یک دیکشنری به نام
name_countبرای شمارش تعداد هر نام استفاده میکنیم.- برای هر کارمند، نام کوچک را بهعنوان کلید و تعداد تکرار را بهعنوان مقدار ذخیره میکنیم.
- در نهایت، با
max(name_count.values())بیشترین تعداد تکرار را پیدا میکنیم.- این عدد همان حداقل تعداد رنگهای مورد نیاز است.
✅ این تمرین را در ویرایشگر خود پیادهسازی کنید. به یاد داشته باشید که پاسخ بیشترین تعداد تکرار یک نام است و اگر همهی نامها یکتا باشند، پاسخ
1خواهد بود.
نمونهها
5 bagher bagherian bagher naderian nader bagherian nader naderian steve jobs
2
5 bagher bagherian bagher borna bagher naderian alfred nobel alfred hitchcock
3
3 freddie mercury brian may roger taylor
1
برای نوشتن پاسخ و دریافت امتیاز، ابتدا وارد حساب شوید.
ورود