حل تمرین هگزانوردی کوئرا با پایتون
در این نوشته به روش حل یکی از سوالات برنامه نویسی وبسایت کوئرا میپردازیم.
حل تمرین هگزانوردی کوئرا با پایتون
علی در شهری نامتناهی زندگی میکند که خیابانهای آن مانند شکل زیر است. شما میتوانید خانه علی که در یکی از تقاطعهای این شهر قرار دارد را در تصویر زیر ببیند.
علی در خانه مانده و حوصلهاش خیلی سررفته و میخواهد در شهر گشتی بزند. گشت زدن علی n مرحله دارد. علی در هر مرحله یکی از 6 جهت که با حروف A,B,C,D,E,F در شکل نشان دادهایم را انتخاب میکند و از محل تقاطع فعلی در آن جهت حرکت میکند تا به تقاطع بعدی برسد.
پس یک گشت علی را میتوان به صورت یک رشته به طول n مثل:
نشان داد به طوری که برای هر i از 1 تا :
si ∈ A,B,C,D,E,F
علی میخواهد برای هر یک از t گشتی که انتخاب کرده است، فاصلهی نقطهی پایانی این گشت را با خانه حساب کند. منظور از فاصله دو تقاطع، یعنی طول کوتاهترین گشتی که بتوان با کمک آن از یک تقاطع به تقاطع دیگر رفت. همچنین فاصله دو تقاطع یکسان را 0 در نظر میگیریم.
ورودی
در سطر اول ورودی عدد صحیح و مثبت t آمده است. که نشاندهندهی تعداد گشتهایی است که در این ورودی آمده است.
در t سطر بعدی، در هر سطر یک رشته که تنها شامل حروف A,B,C,D,E,F است آمده که نشاندهنده یک گشت علی است. تضمین میشود مجموع طول رشتهها در یک ورودی از 100000 بیشتر نشود.
خروجی
خروجی شامل t سطر است که در هر سطر یک عدد صحیح و نامنفی، که نشاندهنده فاصله تقاطع نهایی علی بعد از انجام آن گشت تا تقاطعی که خانه علی در آن قرار دارد است.
مثال
ورودی نمونه 1
3 A AB ABC
خروجی نمونه 1
1 2 2
شکل حرکت علی
شکل حرکت علی در گشت اول
شکل حرکت علی در گشت دوم
شکل حرکت علی در گشت سوم
کد پایتون سوال تمرین هگزانوردی
t = int(input()) results = [] for _ in range(t): path = input().strip() x, y, z = 0, 0, 0 for direction in path: if direction == 'A': x += 1 y -= 1 elif direction == 'B': x += 1 z -= 1 elif direction == 'C': y += 1 z -= 1 elif direction == 'D': x -= 1 y += 1 elif direction == 'E': x -= 1 z += 1 elif direction == 'F': y -= 1 z += 1 distance = max(abs(x), abs(y), abs(z)) results.append(distance) for result in results: print(result)
منبع سوال: کوئرا
اگر نیاز به حل تمرینهای دیگری از کوئرا دارید در بخش نظرات همین نوشته برای ما بنویسید.
ارسال پاسخ