Loading...
Elena123456 avatar Elena123456 235 Точки

5. Lowest Prices in Cities

Здравейте, може ли малко помощ за отпечатването на резултата при тази задача? Съответно е неохбодима и правилна сортировка.

Условие: https://pastebin.com/7QhYWRVG

Judge - https://judge.softuni.bg/Contests/Practice/Index/2370#4

Бих се радвала, ако видя и решение с обекти =>  let products = {};

Това е моето решение до сега, без отпечатването на резултат:

function solve(input) {

    let products = new Map();

 

    input.forEach(row => {

        let [townproductpriceText] = row.split(' | ');

        let price = Number(priceText);

 

        if (!products.get(product)) {

            products.set(productnew Map());

        }

           products.get(product).set(town, price);           

    })

}

 

solve(['Sample Town | Orange | 1000',

'Sample Town | Orange | 2',

'Sample Town | Peach | 1',

'Sofia | Orange | 3',

'Sofia | Peach | 2',

'New York | Sample Product | 1000.1',

'New York | Burger | 10']

)

0
Module: JS Advanced 26/08/2021 12:04:50
Axiomatik avatar Axiomatik 2422 Точки
Best Answer

Hi Eli !

Hope this helps,

;-)

function solve(input) {
    let products = new Map();
    input.forEach(row => {
        let [town, product, priceText] = row.split(' | ');
        let price = Number(priceText);

        if (!products.get(product)) {
            products.set(product, new Map());
        }
        products.get(product).set(town, price);
    });

    let result = [];

    for (const productWithPrice of products) {
        // let lowestPrice = [...productWithPrice[1]].sort((a, b) => a[1] - b[1])[0];
        const towns = [...productWithPrice[1]]; // spread into new area
        let lowestPrice = towns.sort((a, b) => a[1] - b[1])[0];
        // .sort((a, b) => a[1] - b[1])[0] => [0] will take the town at the first position after sorting for lowest price
        result.push(`${productWithPrice[0]} -> ${lowestPrice[1]} (${lowestPrice[0]})`);
    }

    console.log(result.join('\n'));
}



solve(['Sample Town | Orange | 1000',
    'Sample Town | Orange | 2',
    'Sample Town | Peach | 1',
    'Sofia | Orange | 3',
    'Sofia | Peach | 2',
    'New York | Sample Product | 1000.1',
    'New York | Burger | 10']
)

 

1
Elena123456 avatar Elena123456 235 Точки

Thanks a lot! :)

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