Salve a tutti!
Ho completato il secondo esercizio ma il programma riesce a passare solo i primi tre test prima di andare in timeout, impiegando comunque già parecchio tempo per il terzo test.
Dato che impiega appena qualche istante per printarmi tutte le funzioni tranne la penultima immagino che il problema sia quest'ultima. In pratica con un for scorro chiavi e valori dell'insieme dato(insi),( trasformato in un dizionario che ha già solo le chiavi che servono e con solo il primo valore per ogni chiave ), e con un altro for itero su ogni valore di questo dizionario. Se il valore è presente come chiave nel dizionario dato(fcompiti) aggiungo il suo valore a quello precedente e continuo fino a trovare tutti i valori.
Anche provando altri approcci, almeno un for che mi iteri sul dizionario dato(fcompiti) e uno sull'insieme dato(insi) li devo mettere(o no?).
Per curiosità ho anche provato a creare una semplice funzione che, itera sugli elementi dell'insieme(insi) e mi conta +1 se l'elemento è tra le chiavi del dizionario(fcompiti) ma impiega comunque diversi minuti(non so quanti dato che l'ho sempre fermato prima). Se già una funzione semplice come questa impiega un eternità non capisco come riuscire a creare la funzione che mi serve in modo che agisca in tempi fattibili. Immagino di stare sbagliando completamente approccio ma non riesco a trovare un altro tipo di ragionamento. Dove sto sbagliando?
Ho completato il secondo esercizio ma il programma riesce a passare solo i primi tre test prima di andare in timeout, impiegando comunque già parecchio tempo per il terzo test.
Dato che impiega appena qualche istante per printarmi tutte le funzioni tranne la penultima immagino che il problema sia quest'ultima. In pratica con un for scorro chiavi e valori dell'insieme dato(insi),( trasformato in un dizionario che ha già solo le chiavi che servono e con solo il primo valore per ogni chiave ), e con un altro for itero su ogni valore di questo dizionario. Se il valore è presente come chiave nel dizionario dato(fcompiti) aggiungo il suo valore a quello precedente e continuo fino a trovare tutti i valori.
Anche provando altri approcci, almeno un for che mi iteri sul dizionario dato(fcompiti) e uno sull'insieme dato(insi) li devo mettere(o no?).
Per curiosità ho anche provato a creare una semplice funzione che, itera sugli elementi dell'insieme(insi) e mi conta +1 se l'elemento è tra le chiavi del dizionario(fcompiti) ma impiega comunque diversi minuti(non so quanti dato che l'ho sempre fermato prima). Se già una funzione semplice come questa impiega un eternità non capisco come riuscire a creare la funzione che mi serve in modo che agisca in tempi fattibili. Immagino di stare sbagliando completamente approccio ma non riesco a trovare un altro tipo di ragionamento. Dove sto sbagliando?