Loading...
petarvanov123 avatar petarvanov123 8 Точки

Проблем със задача 03. Plant Discovery от 02. Programming Fundamentals Final Exam

Здравейте имам проблем с тази задача https://judge.softuni.org/Contests/Practice/Index/2518#2, дава ми 50/100, като не знам къде греша.Разгледах предни решения ,но тогава в задачата се е искало да се сортира по rating и rarity докато сега не се изисква. Ако някой може да помогне ще съм му много благодарен! 

Това е моето решение https://pastebin.com/K0uHNjDY.

Тагове:
0
JavaScript Fundamentals
Axiomatik avatar Axiomatik 2422 Точки
Best Answer

Main issue was only in Reset command!

;-)

function plantDisc(input) {
    let nLines = Number(input.shift());
    let plantObj = {};

    for (let i = 0; i < nLines; i++) {
        let [plant, rarity] = input.shift().split(`<->`)
        plantObj[plant] = {
            plant,
            rarity,
            rating: 0,
            count: 0,
        };
    }

    let currentRow = input.shift();

    while (currentRow !== `Exhibition`) {
        let command = currentRow.split(` - `).join(` `).split(` `);

        if (plantObj.hasOwnProperty(command[1])) {
            switch (command[0]) {
                case `Rate:`:
                    let counter = 1;
                    let plant = command[1];
                    let rating = Number(command[2]);

                    plantObj[plant][`rating`] += rating;
                    plantObj[plant][`count`] += counter;

                    break;
                case `Update:`:
                    let plantT = command[1];
                    let newRarity = Number(command[2]);
                    plantObj[plantT][`rarity`] = newRarity;

                    break;
                case `Reset:`:
                    let resetPlant = command[1];
                    plantObj[resetPlant][`rating`] = 0;
                    plantObj[resetPlant][`count`] = 0;
                    break;
            }
        } else {
            console.log(`error`);
        }

        currentRow = input.shift();
    }

    console.log(`Plants for the exhibition:`);

    for (const key in plantObj) {
        let averageCount = plantObj[key][`rating`] / plantObj[key][`count`] || 0; // if falsy => 0/0, then return 0
        console.log(`- ${key}; Rarity: ${plantObj[key][`rarity`]}; Rating: ${(averageCount).toFixed(2)}`);
    }
}

 

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