تجربه شرکت در مسابقه برنامه‌نویسی Google Code jam 2018 » ویاتک

ویاتک | اخبار حوزه دانش، فناوری و تکنولوژی به همراه مطالب علمی جذاب

تجربه شرکت در مسابقه برنامه‌نویسی Google Code jam 2018

+

تجربه سال قبلم یعنی مسابقات ۲۰۱۷ رو می‌تونید اینجا بخونید. فکر کنم تا این لحظه من جزو معدود افرادی در ایران هستم که در رابطه با مسابقات برنامه‌نویسی بین‌المللی می‌نوستم و اعلام می‌کنم. (البته دوستان زیادی شرکت می‌کنن ولی خب در این مورد اطلاع‌رسانی نمیشه!) به هر حال امیدوارم انتقال تجربیات در این زمینه بیشتر بشه.

خب این‌بار هم طبق معمول ۱۰ ساعت اول مسابقه که خواب بودم و توی باقی تایم هم تاقبل از حدود ۳ ساعت به پایان وقت یه قسمت از سریال پایتخت رو دیدم! یه فیلم سینمایی دیگه رو هم نگاه کردم! یه چند تا چت و وقت تلفی دیگه! و …

البته الگوریتم دو تا از سوالات مسابقه رو حل کردم و نوشتم که یکی به نام Saving the University Again که در مورد حمله یه ربات به دانشگاه هست که باید با نوشتن الگوریتم کدهای حمله‌هاش رو هک کرد و تغییر داد و جلوش رو گرفت و یکی دیگه هم Trouble Sort که در خصوص یه نوع الگوریتم مرتب‌سازی حبابی تغییر یافته و جالب بود!

البته امسال انگار تونستم ۳۸ امتیاز بگیرم تا الان که البته امتیازها بعد مسابقه مجدداً بررسی میشه و ممکنه کم و زیاد بشن! ظاهراً نسبت به سال قبل (۵ امتیاز) پیشرفت خوبی داشتم با اینکه کلی وقت تلف کردم! امتیاز مورد نیاز برای رفتن به مرحله بعد ۲۵ هست! یعنی فکر کنم اگه وضعیت همین بمونه! فعلاً احتمالش هست برم مرحله بعد! Hamed.J در قعر جدول 🙂

بعد از مسابقه همه الگوریتم‌های حل شده رو برای داده‌های خیلی بزرگ به عنوان ورودی تست میکنن و اگه توی سرعت کم نیاره امتیازش رو تثبیت میکنن وگرنه امتیاز رو کم میکنن! پس هنوز مونده! ۲ تا سوال دیگه هم موند که حالشو نداشتم دیگه حل کنم و خوابیدم! ماجراجویی جالبی بود به هر حال!

زبان برنامه‌نویسی که امسال شرکت کردم Java بود! ولی سال قبل #C شرکت کردم. جالبه من از قبل اینکه مسابقه برگزار بشه توی ویرگول اعلام کردم که هر کی می‌خواد بیاد شرکت کنه و لینکشو توی کانال تلگرامم و توی لینکدین هم گذاشتم! و بعضی‌ها حتی فکر میکردن که من چرا این چیزا رو اعلام می‌کنم که آره من میخوام برم مسابقه شرکت کنم دارم میگم که استفاده ای ببرم و …! ولی بعد مسابقه خیلی‌ها دوستان دیگه هم پیام دادن که چرا به ما یادآوری نکردی که امروز بود مسابقه؟! چرا نگفتی و … به هر حال با به اشتراک‌گذاری تجربه‌ام در این خصوص بازخوردهای مختلفی گرفتم از جمله این‌که واقعاً هیچ جای دیگه ندیدم چرا بقیه دوستان برنامه‌نویس ایرانی هیچی در این خصوص نمی‌نویسن و به اشتراک نمی‌ذارن!

خب در نهایت رفتم نتایج نهایی این دور از مسابقات رو دیدم و بله همون‌طور که بالا هم ذکر کردم درون صورت مسئله (لیست سوالات رو با کلیک روی اینجا می‌تونید ببینید) یک قسمت محدودیت و شرایط گفته شده که الگوریتم با اون شرایط تست میشه، در هنگام مسابقه الگوریتمی که نوشته میشه با توجه به شرایط اعلام شده برای ورودی‌ها، زمان اجرا و … توسط گوگل پردازش میشه و اگه کاملاً بتونه پاسخ‌گو باشه و اجرای کامل بشه امتیاز اون قسمت اول حل برنامه برای شما اختصاص داده میشه. البته با این پیش فرض که چون الگوریتم حل شده این رو جواب داده می‌تونه حالت ورودی و شرایط بدون محدودیت رو هم جواب بده، امتیاز اون قسمت هم موقتاً برامون منظور میشه و چون نیاز به تست‌های مختلف و … هست و بار پردازشی خیلی زیادی داره گوگل تصمیم گرفته بعد از اتمام راند، کل الگوریتم‌های ارسالی برای حالت بدون محدودیت مجدد اجرا و بررسی بشن و اگه بتونن بدون هیچ قیدی همه جوره جواب بدن امتیازشون براتون لحاظ میشه! وگرنه امتیاز این قسمت کسر میشه ازتون.

مثلا برای سوال “Saving The Universe Again” شرایط اجرای برنامه در قسمت اول این بود:
Limits
۱ ≤ T ≤ ۱۰۰٫
۱ ≤ D ≤ ۱۰۹٫
۲ ≤ length of P ≤ ۳۰٫
Every character in P is either C or S.
Time limit: 20 seconds per test set.
Memory limit: 1GB.
Test set 1 (Visible)
The robot’s program contains either zero or one C characters.

الگوریتمی که من نوشتم این رو جواب داده و امتیازش تثبیت شده. ولی برای حالت دوم که با داده‌ها و وردی‌های بزرگ برنامه تست میشه از لحاظ پردازش زمان اجرا نتونسته به درستی پاسخگو باشه و امتیازش کسر شد. خب پس امتیاز من شد ۱۳ هر چند وقت زیادی تلف کردم و ۲ تا سوال دیگه رو ول کردم و حل نکردم، در واقع امسال تفننی شرکت کردم و جدی نگرفتم! در ضمن این تجربه نشون میده که باید روی خوندن و کسب تجربه در مفاهیم بسیاری از جمله پیاده‌سازی الگوریتم و ساختمان داده تمرکز و تمرین بیشتری داشته باشم که شاید بتونم نتیجه بهتری بگیرم. امیدوارم سال بعد خودم از تجربیات خودم درس بگیرم.

منبع:

واکنش شما:
like
1
love
0
haha
0
wow
0
sad
0
angry
0

دیدگاه ها

0 دیدگاه

اشتراک دیدگاه
avatar

wpDiscuz

© تمامی حقوق برای وبسایت ویاتک محفوظ است. نقل مطالب سايت تنها با ذکر و لینک به منبع مجاز است.