📝 Descrição

Maria plays college basketball and wants to go pro. Each season she maintains a record of her play. She tabulates the number of times she breaks her season record for most points and least points in a game. Points scored in the first game establish her record for the season, and she begins counting from there.

📌 Exemplos

Examplo 1:

scores = [12, 24, 10, 24]

GameScoreMinimumMaximumMinMax
012121200
124122401
210102411
324102411

✅ Casos de teste

Caso 1

Entrada

9 10 5 20 20 4 5 2 25 1

Saída

2 4

🚀 Como resolvi?

Temos de analisar rodada a rodada e ir anotando as mudanças que nos interessam, além de termos de marcarmos o maior e menor elemento visto até agora.

1º rodada:

Games01
Scores105
High Scores1010
Low Scores105

Tanto o maior valor, quanto o menor, estão na primeira posição do scores. Se de 0 para 1 termos um incremento ou decremento, contabilizamos-o e ajustamos os holders do maior/menor valor.

2º rodada

Games012
Scores10520
High Scores101020
Low Scores1055

3º rodada

Games0123
Scores1052020
High Scores10102020
Low Scores10555

4ª rodada

Games01234
Scores10520204
High Scores1010202020
Low Scores105554

🛠️ Implementação

def breakingRecords(scores):
    highest_score_count = lowest_score_count = 0
    highest_score = lowest_score = scores[0]
 
    for score in scores[1:]:
        if score < lowest_score:
            lowest_score = score
            lowest_score_count += 1
        elif score > highest_score:
            highest_score = score
            highest_score_count += 1
 
    return [highest_score_count, lowest_score_count]
 

🧠 O que aprendemos?

Dividir o problema em problema menores sempre nos ajudará.