حل تمرین رمز کوئرا با پایتون
در این نوشته به روش حل یکی از سوالات پیاده سازی برنامه نویسی وبسایت کوئرا میپردازیم.
حل تمرین رمز کوئرا با پایتون
گاوصندوقی تا چرخانه دارد که روی هرکدام، ترتیبی از اعداد 1 تا 9 قرار دارد. زیر هر چرخانه یک نشان وجود دارد که به یکی از اعداد چرخانه اشاره میکند و با چرخاندن چرخانه، این عدد تغییر میکند. حال یک عدد رقمی به عنوان رمز داده شده، حداقل تعداد چرخاندن چرخانهها برای این که اعداد اشاره شده برابر عدد رمز شود چقدر است؟
ورودی
در خط اول k آمده است. در خط دوم رمز که یک رشتهی k رقمی متشکل از ارقام 1 تا 9 است آمده است. در خط iاُم از k خط بعدی در هر خط ترتیب ارقام روی چرخانهی iاُم به ترتیب ساعتگرد آمده است. اولین رقم رقم اشاره شده است.
خروجی
حداقل تعداد چرخاندن چرخانهها برای این که اعداد اشاره شده برابر عدد رمز است را چاپ کنید.
مثال
ورودی نمونه 1
3 123 241356789 987546231 956874231
خروجی نمونه 1
7
توضیح: میتوان با این چرخشها در 7 حرکت به رمز هدف رسید:
- دو بار چرخاندن چرخانهی اول در جهت ساعتگرد.
- سه بار چرخاندن چرخانهی دوم در جهت پادساعتگرد.
- دو بار چرخاندن چرخانهی سوم در جهت پادساعتگرد.
کد پایتون سوال تمرین رمز
k = int(input().strip()) target = input().strip() wheels = [input().strip() for _ in range(k)] total_rotations = 0 for i in range(k): current_wheel = wheels[i] target_digit = target[i] current_pos = 0 target_pos = current_wheel.index(target_digit) clockwise_rotations = (target_pos - current_pos) % 9 counterclockwise_rotations = (current_pos - target_pos) % 9 total_rotations += min(clockwise_rotations, counterclockwise_rotations) print(total_rotations)
منبع سوال: کوئرا
اگر نیاز به حل تمرینهای دیگری از کوئرا دارید در بخش نظرات همین نوشته برای ما بنویسید.
ارسال پاسخ