Competitif
La programmation compétitive met en lice plusieurs programmeurs qui doivent écrire un algorithme capable de résoudre un problème selon des contraintes de temps, d’espace… Le temps nécessaire a l’écriture de l’algorithme est également pris en compte.
A haut niveau il requiert de bonnes connaissances en mathématiques et en algorithmique.
D’un point de vue d’écriture algorithmique il est recommandé d’utiliser python, et lorsque le temps d’exécution de l’algorithme est un critère, il faut utiliser un langage rapide qui s’exécute au plus proche du processeur, pour cela on recommande le C++ car il permet plus facilemenet la programmation dynamique .
Le C++ possède nativement des listes triées, chainées , tables de hachage , et listes dynamiques (appelées vecteurs dans la librairie standart), indispensables à cette fin. En C il faut les écrire dsoit même ou passer par des étapes hasardeuses de recherche de librairie, de linkage, et ainsi de suite : le C n’est pas recommandé en programmation compétitive.
Utiliser le C pour résoudre des problèmes de programmation compétitive peut être un bon moyen d’améliorer son niveau C.
Répertoire
Voila une liste de sites web donnant une interface de programmation en C pour la résolution de problèmes de programmation.
- 🇬🇧 Advent of Code : https://adventofcode.com/ 🌍⤴ Tournoi de programmation ouvert chaque année à la période de l’Avent où il est possible notammant de refaire les problèmes des années précédentes.
- 🇬🇧 International olympiad of informatics : https://ioinformatics.org 🌍⤴ , la compétition mondiale d’informatique, contient des ressources pour s’y préparer et des liens vers les antennes nationales.
Privés
Ces sites permettent d’atteindre un niveau compétitif en programmation et gravitent autour des évènements sportifs en matière de programmation
- 🇬🇧 Top Coder : https://www.topcoder.com/community/competitive-programming/ 🌍⤴ Un site pionnier en programmation compétitive, n’est plus dédié à cette fin aujourd’hui.
- 🇬🇧🇷🇺 Codeforces : https://codeforces.com 🌍⤴ La référence actuellement avec le plus grand nombre d’utilisateurs actifs
Ludiques et professionels
Ces sites proposent des problèmes soit pour s’amuser, soit préparer un entretien d’embauche.
- CodinGame : https://www.codingame.com/start/fr/ 🌍⤴ Un site en francais avec une interface très visuelle
- 🇬🇧 LeetCode : https://leetcode.com 🌍⤴ Réputé pour préparer un entretien d’embauche chez les grandes entreprises informatiques.
- 🇬🇧 HackerRank : https://www.hackerrank.com 🌍⤴ De la même façon que Leetcode permet de se préparer à des entretiens d’embauche.
- 🇬🇧 https://www.codewars.com 🌍⤴ Propose des “katas”
- 🇬🇧 http://codekata.com 🌍⤴ Propose aussi des “katas”