[OOP - Basics [Java]] 04. Company Roster
Това ми е решението минава си тестовете но, ми е интересно да видя и друго , за да видя как намирате average понеже аз правя отделен map.
Това ми е решението минава си тестовете но, ми е интересно да видя и друго , за да видя как намирате average понеже аз правя отделен map.
Аз лично ползвам само сет а не речник/мап; След като обработя данните от входа правя една променлива за максимална заплата и една променлива (стринг) с името на департамента с максималната заплата. Обхождам сета от департаменти и за всеки департамент изчислявам средната заплата (обхождайки всички служители в този департамент). Ако средната заплата в департамента е по голяма от максималната средна заплата, присвоявам стойността й към максималната и задававам името на департамента като департамента с максимална заплата.
Накрая изчиствам листа с служители, така че да останат само тези от департамента с максималната средна заплата, подреждам ги по индивидуална заплата и ги отпечатвам.
Това е решението ми http://pastebin.com/fSh6D9Yz (написано е на C#).
При мен така сработи. Използвах само 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();
На мен също ми гърмеше на вторият тест. Проблемът беше че сплитвах входните данни само по 1 празно място, а явно може да бъдат повече. Поправих го да сплитва по всякакъв whitespace и мина всичко.
Това е бил проблемът, мерси :)
И аз правя отделен map, минава без проблем - http://pastebin.com/4C06BG1S. Но има вариант с findFirst().
И аз накрая не се сетих за решение без втори Мап. Явно това е най- интуитивния начин :) http://pastebin.com/sQJDUwed
Здравейте колеги, това е моето решение, но ми минават само първите 2 теста и не знам къде е грешката, някой може ли да помогне?
Пробвай с вход Pesho 10.10 Dev Dev 15 и ще разбереш
П.С 15 не е имейл :)
при length == 5 не проверяваш дали input[4] е email или число.
Леле колега, през цялото време мислех, че проблема е в логиката и изобщо нямаше да се сетя за това. Благодаря ти, всички тестове минаха. :)
Заповядай моето решение ... Може да се съкрати, но е трудно четимо :)
то и моето малко като чаршаф се разпъна :D , ама исках да си има getteri и setteri.