*تهمینه* دیکشنریای شامل لیست پکیجها به همراه پیشنیازهای آنها را از مدیر خود دریافت کرد. قرار بود تا *تهمینه* هر زمان که از او پکیجی خواسته شد او پیشنیازهای آن پکیج را اعلام کند. دیکشنری به صورت زیر بود:
```
{'pkg1': ['pkg3'], 'pkg2':['pkg3'], 'pkg3': [], 'pkg4':['pkg1', 'pkg2']}
```
برای دانلود پروژه اولیه روی [این لینک](/contest/assignments/39255/download_problem_initial_project/136435/) کلیک کنید.
حالا *تهمینه* نیاز دارد تا تابعی با نام `sort_dependencies` را پیادهسازی کند که در این تابع دیکشنری لیست تمامی پکیجها و نام یک پکیج را به عنوان ورودی دریافت میکند و در صورتی که پکیج مورد نظر پیشنیاز داشت فقط لیست پیشنیازهای آن پکیج را برگرداند و در صورتی که پیشنیازی نداشت یک لیست خالی برگرداند.
برای مثال اگر به تابع `sort_dependencies` نام پکیج `pkg4` را بدهند ابتدا باید بررسی کند که آیا پکیج شماره چهار پیشنیازی دارد یا خیر. در این مثال پیشنیازهای این پکیج برابر است با:
```
pkg4:[pkg1, pkg2]
```
حال باید بررسی شود آیا این پیشنیازها، خودشان پیشنیاز دارند یا خیر. بعد از بررسی، پاسخ برابر است با:
```
[pkg3,pkg1,pkg2]
```
البته پاسخ زیر نیز قابل قبول است، در کل هر خروجی قابل نصبی از تابع `sort_dependencies` قابل قبول است:
```
[pkg3,pkg2,pkg1]
```
حالت بالا بدون هیچ مشکلی نصب میشود زیرا پکیج شماره یک و دو نیاز به نصب پکیج شماره سه پیش از خود دارد و در هر دو خروجی بالا این مورد به درستی رعایت شدهاست. اما چهار خروجی زیر اشتباه است:
```
[pkg2,pkg3,pkg1]
```
```
[pkg1,pkg3,pkg2]
```
```
[pkg2,pkg1,pkg3]
```
```
[pkg1,pkg2,pkg3]
```
زیرا در این خروجیها پکیجها بدون ارور نصب نمیشوند و پیش نیاز پکیج یک به درستی رعایت نشده است.
## نکات تکمیلی
* فانکشن نباید پکیج تکراری در خروجی داشته باشد.
* ترتیب پکیج ها به همان ترتیبی باشد که می بایست نصب شوند. **توجه کنید** هر خروجی که بتوان با آن بدون مشکل پکیج ها را نصب کرد، قابل قبول است و مسئله به ازای هر ورودی چندین جواب صحیح دارد.
* نام تابع `sort_dependencies` در فایل `solution.py` به هیچ عنوان نباید تغییر کند.
* خروجی می بایست لیستی از نوع رشته باشد.
## نحوه ارسال جواب
در این تمرین شما تنها مجاز به تغییر محتوای فایل `solution.py` هستید. تغییرات خود را روی این فایل اعمال کنید و پس از تکمیل آن فایل کامل شده `solution.py` را ارسال کنید.
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.