سلام دوست عزیز😃👋
به مسابقه «ورودی بوتکمپ کداستار - DevOps» خوش آمدی!
هرگونه ارتباط با سایر شرکتکنندگان و یا استفاده از ابزارهای تولید کد، مثل ChatGPT
و... در مسابقات کوئرا ممنوع است و بعد از شناسایی از لیست شرکتکنندگان مسابقه حذف میشوید.
میتوانید سوالها و مشکلات خود را از بخش «سوال بپرسید» با ما در میان بگذارید.
موفق باشید و بهتون خوش بگذره 😉✌
همواره در مسابقاتی که توسط مجموعه کوئرا برگزار میشوند، تعدادی از کاربران به منظور فعالیتهای توطئهگرانه، تقلب و بر هم زدن نظم مسابقات، رفتارهای عجیبی انجام میدهند! برخی از آنها با ساخت چنین حسابکاربری در کوئرا با یک نام یکسان و یا شرکت در چند مسابقه به صورت همزمان، دست به توطئهگری در کوئرا میزنند...
ایرادگیر سری جدید کداستار، آقای هاشیمی (MR. Hashimi) از مشروطهچیان و توطئهگران مجموعه میهمن، برای برگزاری این سری مسابقات از کوئرا درخواستهای عجیبی دارد. از درخواستهای عجیب او برگزاری مسابقات مهندسی نرمافزار و فرانتاند در یک زمان به صورت مشترک بود. از نظر آقای هاشیمی برگزاری مسابقات مهندسی نرمافزار و فرانتاند در یک زمان میتواند به شناسایی متقلبان مسابقات کمک بسیاری کند.
او از کوئرا میخواهد تا پس از برگزاری این دو مسابقه و خروجی گرفتن نتایج مسابقه مهندسی نرمافزار در فایل software.csv
و نتایج مسابقه فرانتاند در فایل front.csv
، آنها را تشابهسنجی ابلفضلی کند! به مثال زیر از فایل نتایج این دو مسابقه توجه کنید:
.csv
میباشد که هر سطر آن به ترتیب شامل نام و رتبه فرد شرکتکننده هستند.تشابهسنج ابلفضلی کوئرا با بررسی هر کدام از فایلهای نتایج، یعنی front.csv
و software.csv
، ابتدا سطرهایی از نتایج که نام افراد شرکتکننده آنها تکرار شده است را شناسایی کرده و صرفا نتیجهای را نگهداری کند که رتبه بهتری را در مسابقه کسب کرده است! این تشابهسنجی در هر کدام از فایلها باعث میشود تا در نهایت نام و رتبه تمام شرکتکنندگان متمایز گردد.
سپس این تشابهسنج باید با بررسی نام شرکتکنندهها در هر دو فایل front.csv
و software.csv
در صورتی که نامی را مشاهده کند که در هر دو مسابقه شرکت کرده است، از آنجایی که هر دو مسابقه در یک زمان برگزار شدهاند و یک فرد نمیتواند به صورت همزمان در هر دوی آنها شرکت کند، آن فرد باید به عنوان متقلب شناسایی شده و در سمت راست نامش یک *
برای نشان دادن متقلب بودن فرد قرار گیرد.
در نهایت نتایج هر کدام از مسابقات مهندسی نرمافزار و فرانتاند باید بر اساس رتبه به صورت صعودی مرتبسازی شوند تا آقای هاشیمی بتواند تصمیمگیری درستی در مورد پذیرش افراد در بوتکمپهای کداستار انجام دهد. از آنجایی که همه در کوئرا سخت مشغول برگزاری مجموعه مسابقات کداستار هستند، مسئولیت نوشتن بش اسکریپت تشابهسنج ابلفضلی کوئرا در این سوال به شما واگذار شده است!
ورودی اسکریپت، دو فایل software.csv
و front.csv
است که هر کدام شامل تعدادی سطر به ترتیب شامل نام و رتبه فرد شرکتکننده میباشند، که با ,
از هم جدا شدهاند. ممکن است برخی از نامها در فایلهای ورودی تکراری باشند که باید توسط تشابهسنج ابلفضلی شناسایی شوند. همچنین تضمین میشود که تمامی رتبههای مسابقات متمایز هستند و رتبه تکراری در نتایج وجود ندارد.
توجه داشته باشید که سیستم داوری محتویات فایل front.csv
و software.csv
را به صورت جدا با استریم ریدایرکشن و یا پایپلاین کردن به اسکریپت شما ورودی نمیدهد و اسکریپت نوشته شده در فایل solution.sh
خود به تنهایی قرار است تا خواندن از فایل front.csv
و software.csv
و نمایش خروجی را انجام دهد.
فایل solution.sh
شما توسط سیستم داوری اجرا شده و با خواندن فایلهای software.csv
و front.csv
و تشابهسنجی ابلفضلی و انجام پردازش بر روی آن باید هر کدام از نتایج را به صورت گفته شده (به صورت نتایج متمایز و صعودی بر اساس رتبه که افراد متقلب در آنها شناسایی شدهاند) دوباره در هر کدام از همان فایلها ذخیرهسازی کند. توجه داشته باشید که سیستم داوری نسبت به بزرگی و کوچکی حروف نام افراد شرکتکننده، موقعیت قرارگیری علامت *
برای افراد متقلب و نبود فاصلههای اضافهتر در فایلهای پردازش شده و نهایی software.csv
و front.csv
حساس است.
front.csv
و software.csv
میباشند. این دو فایل پس از انجام تشابهسنجی ابلفضلی و مرتبسازی به صورت بالا تبدیل شدهاند. توجه داشته باشید که از آنجایی که نام هیچ فردی در هر دو فایل نتیجه مسابقات مهندسی نرمافزار و فرانتاند نبوده است، فردی به عنوان متقلب شناسایی نشده است.front.csv
و software.csv
میباشند. این دو فایل پس از انجام تشابهسنجی ابلفضلی و مرتبسازی به صورت بالا تبدیل شدهاند. فایل front.csv
پس از تشابهسنجی، از آنجایی که سه شرکتکننده با نامهای یکسان Zahra Ahmadi
دارد، تنها بهترین نتیجه برای این نام که رتبه ۷۰ میباشد باقی مانده و سایر نتایج از فایل front.csv
حذف شدهاند. همچنین از آنجایی که این نام علاوه بر فایل front.csv
در فایل software.csv
نیز دیده شده و این فرد در هر دو مسابقه که به صورت همزمان برگزار شدهاند، شرکت کرده است، پس او به عنوان فرد متقلب، شناسایی شده و کنار نامش پس از تشابهسنجی ابلفضلی علامت *
قرار گرفته است. آقای هاشیمی او را از شرکت در بوتکمپهای کداستار منع خواهد کرد!توجه: شما باید موارد خواسته شده در سوال را تنها در قالب فایل solution.sh
پیادهسازی کرده و ارسال کنید.
توجه: خروجی پاسخ شما باید عینا مطابق عبارت خواسته شده باشد (یعنی از لحاظ بزرگی و کوچکی حروف و علائم نگارشی و موقعیت قرار گیری *
در کنار نام باید بدون تغییرات اضافی باشد)
توجه: فایل solution.sh
توسط سیستم داوری اجرا میشود و نیازی به نوشتن دستور یا اسکریپت دیگری برای اجرای این فایل نیست.
توجه: نتایج پس از تشابهسنجی ابلفضلی باید در همان فایلهای front.csv
و software.csv
بازنویسی شوند.
توجه: سیستم داوری محتویات فایل front.csv
و software.csv
را به صورت جدا با استریم ریدایرکشن و یا پایپلاین کردن به اسکریپت شما ورودی نمیدهد و اسکریپت نوشته شده در فایل solution.sh
خود به تنهایی قرار است تا خواندن از فایل front.csv
و software.csv
و نمایش خروجی را انجام دهد.