مبینا ستاری
3 سال پیش توسط مبینا ستاری مطرح شد
15 پاسخ

یک سوال گیج کننده

درود دوستان.
من یه سوالی پیدا کردم توی یکی از این آزمون ها، که الگوریتمش رو تا حدودی میدونم، اما یه خورده گیج کننده است دقیقا متوجه نمیشم!
ببینید این متن سواله. این به هیچ وجه تقلب نیست چون آزمون 5 روز قبل بوده.
"
مجید، کودک دوستداشتنی و گوگولی قصه ما علاقه زیادی به جمع کردن ماژیک دارد .
مجید در خانه اش N تا ماژیک دارد که هر کدام از آن ها رنگی دارند که آن رنگ را با یک عدد نشان میدهیم. حال
مسئله ای ذهن مجید را مشغول کرده است که از کدام رنگ کمترین تعداد ماژیک را دارد .
از آنجایی که مجید بس یار کوچک است و هنوز شمردن بلد نیست از شما میخواهیم که به مجید کمک کنید و رنگ
ماژیکی که تعدادش کمتر از همه است را چاپ کنید. همچنین اگر بیش از یک رنگ داشتیم که تعداد ماژیکهایش
کمتر مساوی از بقیه بود، بین آن رنگ ها، آن رنگی را چاپ کنید که عددش از بقیه کمتر است. )برای فهمیدن بهتر
سوال، توضیح ورودی های نمونه را بخوانید. "

ورودی
در خط اول ورودی N که تعداد ماژیک های مجید است می آید. در خط بعدی N عدد با فاصله از هم میآی د که عدد
iام نشان دهنده رنگ ماژیک iام است.

خروجی
در تنها خط خروجی یک عدد چاپ کن ید که برابر شماره ی رنگ ماژیکی است که تعدادش کمتر از بقیه است

این نمونه است

دوستان ممنون میشم اگه راهنمایی کنید، هی الگوریتمش رو میخوام تجسم کنم، ولی چون دانشم در این زمینه کمه، هی گیج میشم و راه رو گم میکنم.
(زبانش هم پایتونه، بقیه رو با پایتون زدم)


ثبت پرسش جدید
Ali
@411proplayer 3 سال پیش آپدیت شد
0
total_interation = int(input('Total ? '))
dic_numbers = {}
numbers = input('Number ? ').split()
# print(numbers)
for number in numbers:
    # each number deafult plus number is 1
    plus_number = 1
    if number in dic_numbers:
        # if number already exists in list we just get the number of the dic and + 1
        plus_number = dic_numbers[number] + 1
    dic_numbers[number] = plus_number

min_num = min(dic_numbers)
final_list = [v for (k, v) in dic_numbers.items() if k == min_num]
answer = min(final_list)
print(answer)

کاری که من کردم اومدم به ازای هر عددی که کاربر میداد یعنی همون ماژیک تو یه دیکشنری اضافه کردم و اگه نبود 1 میزاشتم اگه بود عدد قبلیو به اضافه 1 میکردم برا مثال وقتی کاربر 1 1 2 رو وارد کنه جواب یه همچین چیزی میشه

{"1" : 2 , "2" : 1}

بعد کمترین عدد رو از دیکشنری گرفتم فیلتر کردم دیکشنری رو بر اساس کمتریم عدد که میشه این

[2]

بعد اولین عدد لیست رو میگیریم و میگیم شاید این جواب باشه ولی چک میکنیم اگه لیست بیشتر عدد داشت خوب دوباره کمترین عددشو میگیریم بعد اون جوابه


امیر علی
تخصص : طراح و توسعه دهنده fullstack
@ajdar9667 3 سال پیش مطرح شد
-1

با php میتونم جوابتو بدم یا فقط پایتون ؟


مبینا ستاری
تخصص : توسعه دهنده بک اند
@mobinasattari7 3 سال پیش مطرح شد
0

@ajdar9667 نه اخه نمیدونم منطقش مثل اون میشه یا نه. چون یه خورده با هم تفاوت دارن اما نمیدونم بشه یا نه


امیر علی
تخصص : طراح و توسعه دهنده fullstack
@ajdar9667 3 سال پیش مطرح شد
0

اگر با php خاستی در خدمتم


مبینا ستاری
تخصص : توسعه دهنده بک اند
@mobinasattari7 3 سال پیش مطرح شد
0

باشه ممنون @ajdar9667


مبینا ستاری
تخصص : توسعه دهنده بک اند
@mobinasattari7 3 سال پیش مطرح شد
0

من الان میدونم که این باید دو تا خروجی داشته باشه. یکی برای تعداد المان ها و اون یکی برای عددِ رنگ ماژیک ها. منتها اولین چیزی که نمیدونم اینه که چطور باید این ورودی دوم توی یه خط دریافت بشه و نمیدونم هم دقیقا چی باید سرچ کنم


مهران مرندی
تخصص : برنامه نویس
@mehranmarandi 3 سال پیش مطرح شد
0

دقیقا متوجه سوالتون نشدم، الان مشکلتون تو دریافت کردن دو خط ورودی هست؟
معمولا آزمون های برنامه نویسی ورودی sys.stdin دریافت میکنن
مثلا:

import sys 
first = sys.stdin.readline()  
secound = sys.stdin.readline()  

a = int(first)+int(secound)
print(a)

k=input("press close to exit") 

امیر علی
تخصص : طراح و توسعه دهنده fullstack
@ajdar9667 3 سال پیش مطرح شد
0

@mehranmarandi90 داخل php برای ازمون های برنامه نویسی از اینپوت ها در صفحات html استفاده کنیم مشکلی نیست ؟؟؟
یا مثه پایتون کتابخونه خاصی برای این کار هست چون منم یه سوال با ورودی های مشابه همین سوالی که بالا بیان کردند رو با php حل کردم ولی این نوع بیان که ورودی ها با فاصله از هم جدا می شوند و در خط بعد اعداد وارد می شود یکم با html کارکردن رو عجیب میکنه


مهران مرندی
تخصص : برنامه نویس
@mehranmarandi 3 سال پیش مطرح شد
0

@ajdar9667 نه برای آزمون برنامه نویسی با زبان php ورودی باید stdin readline باشه و خرجی باید با همون فرمتی که تو سوال گفته میشه echo بشه


امیر علی
تخصص : طراح و توسعه دهنده fullstack
@ajdar9667 3 سال پیش مطرح شد
0

@mehranmarandi90 مهران جان مثلا یه جدول رو چجوری براش چاپ کنم ؟


محمدصادق عبداللهی
تخصص : junior full stack developer
@mimsadAlef 3 سال پیش مطرح شد
0

من فکر کنم بتونم با پایتون پیادش کنم🙄


مبینا ستاری
تخصص : توسعه دهنده بک اند
@mobinasattari7 3 سال پیش مطرح شد
0

ممنون میشم بگید @mimsadAlef


Ali
@411proplayer 3 سال پیش آپدیت شد
0
total_interation = int(input('Total ? '))
dic_numbers = {}
numbers = input('Number ? ').split()
# print(numbers)
for number in numbers:
    # each number deafult plus number is 1
    plus_number = 1
    if number in dic_numbers:
        # if number already exists in list we just get the number of the dic and + 1
        plus_number = dic_numbers[number] + 1
    dic_numbers[number] = plus_number

min_num = min(dic_numbers)
final_list = [v for (k, v) in dic_numbers.items() if k == min_num]
answer = min(final_list)
print(answer)

کاری که من کردم اومدم به ازای هر عددی که کاربر میداد یعنی همون ماژیک تو یه دیکشنری اضافه کردم و اگه نبود 1 میزاشتم اگه بود عدد قبلیو به اضافه 1 میکردم برا مثال وقتی کاربر 1 1 2 رو وارد کنه جواب یه همچین چیزی میشه

{"1" : 2 , "2" : 1}

بعد کمترین عدد رو از دیکشنری گرفتم فیلتر کردم دیکشنری رو بر اساس کمتریم عدد که میشه این

[2]

بعد اولین عدد لیست رو میگیریم و میگیم شاید این جواب باشه ولی چک میکنیم اگه لیست بیشتر عدد داشت خوب دوباره کمترین عددشو میگیریم بعد اون جوابه


مبینا ستاری
تخصص : توسعه دهنده بک اند
@mobinasattari7 3 سال پیش مطرح شد
0

@411proplayer خیلی ممنون تا حدودی درست کار میکنه اما سوال گفته که باید تو یه خط باشه منم سر این گیر کردم.


Ali
@411proplayer 3 سال پیش مطرح شد
0

@mobinasattari7 کدمو تغییر دادم منظورتون این شکلیه ؟ که همه عددا رو از یه خط بگیره؟


مبینا ستاری
تخصص : توسعه دهنده بک اند
@mobinasattari7 3 سال پیش مطرح شد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام