Loading...
tobieski avatar tobieski 6 Точки

02. SoftUni Karaoke - Retake Exam - Part 1 - 6 January 2017

Здравейте колеги, 

Опитвам се да реша следната изпитна задача , но стигам до задънена улица. Успявам да събера необходимата информация и мисля, че програмата работи коректно. Но проблема е, че на изхода, трябва да извадя резултатите, сортирани по това, кой колко награди е спечелил. Ако някой може да даде едно рамо. Ето решението ми тук.

Тагове:
0
Programming Fundamentals
ambiorix avatar ambiorix 640 Точки
Best Answer

Здравей. Подходил си по по-труден начин от необходимото и това ти е създало проблемите. Например, защо речникът ти awardedParticipants е от string и вложен речник като можеше вместо вложения речник да имаш само лист с наградите, защото реално ако някоя награда се повтаря тя не се брои за 2 или повече, а си остава една :) . Затова в твоето решение този речник е излишен или поне ред 64 е излишен(можеш да го закоментираш и пак ще вземеш 100).

Оправих ти подреждането на резултата + добавих един return; на ред 42 - решението работи и без него, но така избягваш излишно циклене.

Малко пояснение за подреждането при принтиране:

person in awardedParticipants.OrderByDescending(p => p.Value.Keys.Count).ThenBy(p => p.Key)) - по низходящ ред по броя на наградите като взимам броят на техните имена(например ако има 2 стринга Best Rock и Best Metal - 2, ако са Best Rock, Best Metal, Best Pop - 3 стринга) и след това по името на изпълнителя във възходящ(азбучен).

award in person.Value.OrderBy(p => p.Key) - по възходящ ред спрямо името на изпълнителя (string)

Твоето решение с тези 3 поправки - https://dotnetfiddle.net/lpiwdp

Моето решение е много близко до твоето, но както казах малко по-лесно(без вложен речник) което улеснява точно подредбата накрая, та погледни и него при интерес - https://github.com/gaydov/Softuni-Programming-Fundamentals/blob/master/Exams/Exam-06th-Jan-2017/SoftUniKaraoke/SoftUniKaraoke.cs

Съжалявам за малко дългия пост. Кажи ако нещо е останало неясно.

0
20/02/2017 00:53:30
tobieski avatar tobieski 6 Точки

Привет, 

Благодаря ти за отделеното време. Наистина не ми мина през ума да не влагам речник, а просто лист и да използвам List.Count. 

Поздрави !

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.