Teste Codility: o que sua pontuação realmente mede

· 8 min de leitura

A maioria das pessoas falha em um teste do Codility acreditando que o passou. Os exemplos na descrição da tarefa imprimiam a resposta correta, o editor mostrava OK, a submissão era aceita — e o relatório retornava 40%. O motivo é simples e vale a pena saber antes de fazer um: os exemplos que você vê não fazem parte da pontuação.

Do que a pontuação realmente é composta

Cada tarefa é avaliada em dois eixos distintos, e eles são reportados separadamente.

  • Correctness — a parte dos casos de teste ocultos em que sua saída corresponde à esperada. Cada tarefa tem ao menos seis casos avaliados, e sua pontuação na tarefa é a porcentagem deles que passam. Os exemplos mostrados na descrição são demonstrações, não casos avaliados.
  • Performance — se a solução permanece dentro dos limites de tempo e memória à medida que a entrada cresce. Isso se aplica apenas a tarefas em que a escalabilidade faz parte da pontuação, e é avaliado mesmo quando todas as suas respostas estão corretas.

Esse segundo eixo é o que as pessoas não planejam. Um loop O(n²) correto em uma tarefa projetada para O(n log n) devolve a resposta certa em todos os casos que termina, mas ainda perde a maior parte dos pontos de performance, porque os casos maiores excedem o tempo.

Leia as restrições como um orçamento de complexidade

O bloco de restrições não é decoração. Ele é a tarefa indicando qual complexidade será aceita, e é a coisa mais útil da página.

  • N up to 100,000 or more — qualquer algoritmo quadrático excederá o tempo. Você está sendo solicitado a usar ordenação, um hash map, dois ponteiros ou um prefix sum.
  • N up to a few thousand — O(n²) costuma ser suficiente, e buscar algo mais sofisticado consome tempo que você precisará em outro lugar.
  • Values up to 2 billion — a tarefa indica que um acumulador de 32 bits vai estourar. Em uma linguagem onde isso importa, importa aqui.

Determine a complexidade alvo antes de escrever uma linha. Em um teste avaliado por máquina não há ninguém para conceder pontos por um bom instinto que você nunca implementou.

Para onde os pontos realmente vão

Três padrões explicam a maior parte da pontuação perdida, e nenhum deles tem a ver com habilidade algorítmica.

  • Casos de borda que ninguém testou. Entrada vazia, um único elemento, todos os elementos iguais, os valores mínimo e máximo permitidos. Esses são exatamente os casos ocultos, porque são os mais baratos de escrever.
  • Erro de um a mais ou a menos na fronteira. Intervalos inclusivos versus exclusivos custam mais pontos no Codility do que qualquer estrutura de dados.
  • Ficar sem tempo na tarefa três. O cronômetro cobre todo o teste, não cada tarefa. Uma pessoa que deixa um brute force funcional em todas as tarefas geralmente supera alguém com uma solução perfeita e duas em branco.

Crédito parcial é real, então use-o

Como a pontuação é uma porcentagem dos casos, um brute force honesto vale muito mais do que um editor vazio. A sequência que obtém a melhor pontuação sob pressão de tempo quase sempre é a mesma: escreva a solução óbvia, envie, depois otimize‑a e envie novamente. Você garante os pontos primeiro e os melhora depois.

Se você sabe que sua solução é muito lenta e não pode corrigi‑la, deixe‑a assim. Uma submissão que estoura o tempo nos casos grandes ainda coleta todos os casos pequenos e médios que ela passa.

Os últimos dez minutos

Pare de escrever código novo. Execute cada tarefa uma vez com entrada vazia, uma vez com um único elemento e uma vez com o maior valor que as restrições permitem. Essa passagem encontra mais pontos do que uma quarta tentativa na tarefa difícil, e leva três minutos.

Mais uma coisa que vale a pena saber antes de descobrir depois: a plataforma registra o que acontece na aba, incluindo mudanças de foco e blocos colados, e o empregador vê esse resumo ao lado da sua pontuação. Planeje seu teste como algo que você senta e termina, não como algo que você monta a partir de outras janelas.

FAQ

Os exemplos da tarefa contam para a minha pontuação no Codility?

Não. Os exemplos no enunciado são apenas ilustrações. Sua pontuação é a porcentagem de casos de teste ocultos que sua solução acerta, por isso uma solução que resolve todos os exemplos impressos ainda pode ter pontuação baixa.

Qual é a pontuação mínima para ser aprovado no Codility?

Não existe uma nota de aprovação universal — o empregador define o critério. Na prática, a maioria das empresas analisa a porcentagem total em todas as tarefas e se as pontuações de desempenho indicam que você reconheceu a complexidade esperada.

Posso voltar a uma tarefa anterior?

Na maioria das configurações de teste do Codility, sim: todo o teste usa um único cronômetro e você pode alternar entre as tarefas enquanto ele não termina. Por isso, fazer uma solução ingênua primeiro e depois voltar para otimizá‑la funciona tão bem.

O Codility detecta troca de aba ou código colado?

A plataforma registra mudanças de foco e colagens grandes e informa isso ao empregador junto com a pontuação. Ela não reprova você automaticamente, mas o resumo fica visível para quem analisar seu relatório.

Como o aplicativo ajuda aqui

Leia a seguir