Resolución de problemas de Pintia - Competencia grupal de programación 7-9

7-9 Competencia del equipo de programación

Titulo original:

Las reglas de la competencia del equipo de programación son: cada equipo está compuesto por varios miembros; todos los miembros compiten de forma independiente; la puntuación del equipo participante es la suma de las puntuaciones de todos los miembros; el equipo con la puntuación más alta gana.

Ahora, dados los resultados del juego de todos los jugadores, escriba un programa para encontrar el equipo campeón.

Formato de entrada:

La primera línea de entrada da un número entero positivo N (≤104), que es el número total de todos los jugadores participantes. Luego hay N líneas, cada línea da la puntuación de un jugador, el formato es: 队伍编号-队员编号 成绩, que 队伍编号es un número entero positivo de 1 a 1000, 队员编号es un número entero positivo de 1 a 10, 成绩es un número entero de 0 a 100.

Formato de salida :

Introduzca el número y la puntuación total del equipo ganador en una línea, separados por un espacio. Nota: El título garantiza que el equipo ganador es único.

.

Ideas para resolver problemas:

  1. Importe readlineel módulo y cree un objeto de interfaz: primero readlineintroduzca el módulo y use createInterfacemétodos para crear un objeto de interfaz rl. Este objeto establece el flujo de entrada en entrada estándar.
  2. Leer entrada y almacenar: al escuchar 'line'eventos, almacene cada línea de entrada en una matriz buf.
  3. Analiza la entrada: buf.splice(1)obteniendo el texto de entrada comenzando en la segunda línea y almacenándolo en text.
  4. Calcule la suma de las puntuaciones: utilice un bucle para iterar sobre textcada cadena de la matriz. Divida la cadena mediante splitel método, obtenga el nombre del equipo y la puntuación, y guárdelos en el objeto term. Si termla clave para el nombre del equipo no existe en el objeto, se le agrega termy la puntuación se inicializa a 0. Luego, la puntuación se suma a la clave correspondiente.
  5. Encuentre el equipo con la puntuación más alta: use un bucle para iterar sobre termcada clave en el objeto, comparando la puntuación con la puntuación más alta actual. Si la puntuación actual supera la puntuación máxima, se actualizan la puntuación máxima y el nombre del equipo ganador.
  6. Resultados de salida: envíe el nombre del equipo ganador y la puntuación total a la consola.

.

Código JavaScript (nodo):

const r = require("readline");
const rl = r.createInterface({
    
    
    input: process.stdin
});
let buf = [];
rl.on('line', (input) => buf.push(input));
rl.on('close', () => {
    
    
    const text = buf.splice(1)
    let term = {
    
    };
    for (let i = 0; i < text.length; i++) {
    
    
        const duwu = text[i].split("-")[0]
        const score = parseInt(text[i].split(" ")[1])
        if (!term.hasOwnProperty(duwu)) {
    
    
            term[duwu] = 0
        }
        term[duwu] += score
    }
    let sum = 0, winner = "";
    for (let i in term) {
    
    
        let score = term[i]
        if (sum < score) {
    
    
            sum = score
            winner = i;
        }
    }
    console.log(winner + " " + sum);


});

.

Análisis de complejidad:

Complejidad del tiempo: O (n)
Complejidad espacial: O (n)

Supongo que te gusta

Origin blog.csdn.net/Mredust/article/details/133518966
Recomendado
Clasificación