TÓPICO

Onde está o erro?

hfmiranda perguntou 3 years ago

O código está funcionando sem erros de sintaxe, minha dúvida é como definir os valores das notas atribuidas a cada tecla.. Acho que só isso que falta. Talvez seja bem óbvio, mas no momento está sendo desafiador. Rs, agradeço qualquer ajuda!

let entrada1 = lines.shift().split(' '); // PEGA PRIMEIROS VALORES E DECLARA VARIAVEIS
let N = parseInt(entrada1[0]);
let Q = parseInt(entrada1[1]);
var teclas = [], intervalo = [];
let outp = Q;

for (let map = 0; map <= N; map++){ // DEFINe NOTAS ASSOCIADAS AS TECLAS
    teclas[map] = map;
    if(teclas[map] > 8) teclas[map] %= 9;
}

var acr0 = 0; // CAPTURAM O VALOR DE ACs PARA QUE EXISTAM FORA DO LOOP
var acr1 = 0;

for (let rep = 0; rep < N; rep++){
    if (rep < Q){
        var acorde = lines.shift().split(' ');  // RECEBE ACORDES E PROCESSAM OS VALORES
        var ac0 = parseInt(acorde[0]);
        var ac1 = parseInt(acorde[1]);
        acr0 = ac0;
        acr1 = ac1;
    }
    processaNotas();
}

function mode(arr){ // ACHA NUMERO MAIS COMUM
    const frequencia = {};
    arr.forEach(valor => frequencia[valor] = frequencia[valor] + 1 || 1);
    let frequenciaMax = 0;
    for (let key in frequencia){
        if (frequencia[key] > frequenciaMax){
            modes = [Number(key)];
            frequenciaMax = frequencia[key];
        } else if (frequencia[key] === frequenciaMax){
            modes.push(Number(key));
        }
    }
    return modes[modes.length - 1];
}

function processaNotas(){ // PROCESSA TODOS OS 'N' PEDIDOS
    intervalo = [];
    for (let ind = acr0; ind <= acr1; ind++){
        intervalo[ind] = teclas[ind];
    }
    let frequente = mode(intervalo);
    for (let addInd = acr0; addInd <= acr1; addInd++){
        teclas[addInd] += intervalo[addInd];
        if (teclas[addInd] > 8) teclas[addInd] -= 9;
    }
    console.log(frequente);
}

Este tópico ainda não foi respondido. Seja o primeiro!

Lembre de não publicar soluções. Sua publicação pode ser revisada por nossos moderadores.