J'ai eu 1 autre Codingame depuis 1 mois, et je reçois maintenant les rapports. En gros c'est basé sur 4 critères pour te tester sur 1 language (c'est sur leur site), mais en fonction du test ce n'est pas forcément tous les critères.
- Design. This measurement gives an indication of the candidate's ability to implement standard solutions to common problems. A developer with a good level of proficiency in this skill will contribute to increase the quality (maintainability, extensibility) of your applications. It does not rely specifically on technology. (This skill os particulary important if, for example, you are looking for a developer who will have to work on the architecture of your applications and to develop long-term solutions)
- Language knowledge (je n'ai pas relevé la description)
- Problem solving corresponds to the candidate's ability to understand and to structure his reasoning in order to find efficient solutions to complex problems. It does not rely specifically on technology. (This skill os particulary important if, for example, you are looking for R&D developers)
- Reliability refers to the candidate's ability to achieve solutions that address specific casees. Developers with a high reliability score are likely to create more robust applications (less bugs).
Et en cherchant 1 peu sur Internet voila ce que j'ai compris des critères :
- Language knowledge : ce sont les réponses QCM.
- Problem solving : les tests passent ou pas
- Reliability : ce n'est pas très clair, mais c'est si tu utilises la bibliothèque standard ou pas. Si tu codes 1 algo à la main alors ce critère va être très mauvais. Par exemple, en C++ pour coder 1 boucle for, il m'a semblé qu'il faut mieux utiliser les itérateurs par rapport à 1 compteur.
- Design : celui là est le plus nébuleux
Mais il semblerait que c'est faire le code le + compact (moins de lignes possibles) et indirectement/ éventuellement/ volontairement le moins de variables locales. Parce que oui, l'interface Codingame sait calculer le nombre de lignes, sûrement repérer les variables locales ... de toute façon dans le tutorial, tu vois que tu as tout l'historique de ton code pour 1 exercice et avec 1 bouton tu peux revenir en arrière et "défaire ton codage".
L'idée des Codingames pour avoir le maximum de points c'est
- on fait 1 code qui passe les tests
- on reprend le même code et on appelle/ utilise la bibliothèque standard
- on reprend le même code et on le compacte (lambda, for range, fonctionnel [reduce, map, ...], formule mathématique, ...)
Et donc la nécessité de s'entraîner aux exercices sur leur plateforme![]()
![]()
Je pense que tu prends la tête pour rien sur les macaronsEst-ce que c'est dit que le code doit fonctionner sur 1 grand tableau ?
Si rien est indiqué, alors le code ressemble à cela (en pseudo code)
Édit : Pour faire 1 remove_all sur 1 liste en Python, cela se fait en 1 ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 prix = 0; while( macarons.is_not_empty() ) { count = macarons.count( macarons[0] ); // en Python, apparemment, c'est exactement cela prix = prix + (prices( macarons[0] ) * count * (1 - ((count - 1) * 10) / 100)); // pas sûr du calcul. Et en Python, le tableau prices doit être 1 tableau associatif macarons.remove_all( macarons[0] ); // en Python, apparemment, tu doit faire 1 while sur 1 copie } return prix;donc le code se fait en 4 lignes (sans les initialisations et le return)
- list(filter(( macarons[0] ).__ne__, macarons))
- list(filter(lambda a: a != macarons[0], macarons))
- filter(lambda a: a != macarons[0], macarons) (Python 2.x)
- macarons[:] = (value for value in macarons if value != macarons[0]) (sûrement utiliser 1 variable locale)
- while macarons[0] in macarons: macarons.remove( macarons[0] ) (sûrement utiliser 1 variable locale)
Partager