Programming Basics with Python - януари 2020
Loading...
delian1914 avatar delian1914 98 Точки

Problem 4 - Snowwhite Retake Exam - 05 January 2018 Part II проблем при сортиране

ЗАДАЧА 04. SNOWWHITE ОТ PROGRAMMING FUNDAMENTALS RETAKE EXAM - 05 JANUARY 2018 PART II УСЛОВИЕ

Линк към Judge

Моят код 50/100

 

По условие изходът трябва да се подреди по низходящ ред на физиката на джуджетата, което ми е стойност, след това по брой на джуджетата, което ми е ключ. Ако някоя от подредбите не успее стойностите трябва да останат в редът, в който са влезли и тук идва трудната за мен част.

Dictionary<string, int> dwarfs = new Dictionary<string, int>();
                      

            foreach (var dwarf in dwarfs.OrderByDescending(x=>x.Value).ThenByDescending(x=>x.Key.Count()))
            {
                  Console.WriteLine($"{dwarf.Key} <-> {dwarf.Value}");
            }

Очакван изход

(Yellow) Sasho <-> 4500

(Red) Pesho <-> 2000

(Blue) Tosho <-> 1000

(Green) Gosho <-> 1000

(Stamat) Prakasho <-> 1000

 

Моят изход

(Yellow) Sasho <-> 4500
(Red) Pesho <-> 2000
(Stamat) Prakasho <-> 1000
(Green) Gosho <-> 1000
(Blue) Tosho <-> 1000

 

След първото сортиране по числата OrderByDescending(x=>x.Value) стойтостите, които са равни една на друга остават в реда, който са влезли. След следващото сортиране по брой на джуджета от еднакъв цвят, което е необходимо според условието, стойностите който са равни се разбъркват, а не остават в реда, в който са влезли.

  • If all sorting criteria fail, the order should be by order of input.

 

0
Programming Fundamentals
inser7 avatar inser7 221 Точки
Best Answer

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

1-во решението,което си пуснал в pastebin,гърми много яко в Judge!Интересно ми стана защо-оказа се,че незнайно как отварящата ти скоба за Main() e затваряща :)

 static void Main()
        }
            Dictionary<string, int> dwarfs = new Dictionary<string, int>();

 Оправих го това...

Stamat ти се качва над другите джуджета,защото метода в твоят случай

ThenByDescending(x=>x.Key.Count())

връща броят на всички char-ове и така ти се подреждат по броят им букви,а трябва да се подреждат по брой джуджета с еднакви шапки.

Според мен не си разбрал правилно условието на задачата или по-точно:

total count of dwarfs with the same hat color in descending order

Дефакто за тази задача ще ти трябва вложено Dictionary или Class.Джуджетата се хващат 1-во по шапки,след това по име и накрая по физика.Пробвай с този метод и ако пак имаш проблеми пиши.

Надявам се да съм бил полезен.

Поздрави Георги!

1