Профил
Loading...
+ Нов въпрос
IskrenPenev avatar IskrenPenev 177 Точки

Аз лично ползвам само сет а не речник/мап; След като обработя данните от входа правя една променлива за максимална заплата и една променлива (стринг) с името на департамента с максималната заплата. Обхождам сета от департаменти и за всеки департамент изчислявам средната заплата (обхождайки всички служители в този департамент). Ако средната заплата в департамента е по голяма от максималната средна заплата, присвоявам стойността й към максималната и задававам името на департамента като департамента с максимална заплата.

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

Това е решението ми http://pastebin.com/fSh6D9Yz (написано е на C#).

0
fargo avatar fargo 18 Точки

При мен така сработи. Използвах само List<Employee>, но ми гърми 2ри тест(грешка при изпълнение), предполагам заради някое куери, но не успявам да го оправя засега.

 

var groupedByDepartment = employees
                .GroupBy(e => e.department)
                .Select(g => new {Department = g.Key, AvgSalary = g.Average(e => e.Salary)});               

var maxAvgDepartment = groupedByDepartment
                .OrderByDescending(g => g.AvgSalary)
                .Select(g => g.Department)
                .First();

var employeesToPrint = employees
                .Where(e => e.Department== maxAvgDepartment)
                .OrderByDescending(e => e.Salary)
                .ToList();

 

0
IskrenPenev avatar IskrenPenev 177 Точки

На мен също ми гърмеше на вторият тест. Проблемът беше че сплитвах входните данни само по 1 празно място, а явно може да бъдат повече. Поправих го да сплитва по всякакъв whitespace и мина всичко.

1
fargo avatar fargo 18 Точки

Това е бил проблемът, мерси :)

0
vancho avatar vancho 430 Точки

И аз правя отделен map, минава без проблем - http://pastebin.com/4C06BG1S. Но има вариант с findFirst().

-1
21/06/2016 20:12:07
Chobi avatar Chobi 20 Точки

И аз накрая не се сетих за решение без втори Мап. Явно това е най- интуитивния начин :) http://pastebin.com/sQJDUwed

0
supersane avatar supersane 234 Точки

Здравейте колеги, това е моето решение, но ми минават само първите 2 теста и не знам къде е грешката, някой може ли да помогне?

0
Ivanov.Ivan avatar Ivanov.Ivan Trainer 558 Точки

Пробвай с вход Pesho 10.10 Dev Dev 15 и ще разбереш

П.С  15 не е имейл :)

1
kaloyannikov avatar kaloyannikov 531 Точки

 при length == 5 не проверяваш дали input[4] е email или число.

0
supersane avatar supersane 234 Точки

Леле колега, през цялото време мислех, че проблема е в логиката и изобщо нямаше да се сетя за това. Благодаря ти, всички тестове минаха. :)

1
Ivanov.Ivan avatar Ivanov.Ivan Trainer 558 Точки

Заповядай моето решение ... Може да се съкрати, но е трудно четимо :)

ЦЪК

0
kaloyannikov avatar kaloyannikov 531 Точки

то и моето малко като чаршаф се разпъна :D , ама исках да си има getteri и setteri.

0