Solution Exercice Montagne Russe Codingame

Navigation

Inscrivez-vous gratuitementpour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  • Vous n'êtes pas encore inscrit sur Developpez.com ? Inscrivez-vous gratuitement !
  • Recherche avancée
  • Accueil
  • Forum
  • Autres langages
  • Python
  • Général Python
  • solution exercice montagne russe codingame
+ Répondre à la discussion Python Discussion : solution exercice montagne russe codingame Sujet :

Python

  • Outils de la discussion
    • Afficher une version imprimable
    • S'abonner à cette discussion…
  • Affichage
    • Mode linéaire
    • Choisir le mode hybride
    • Choisir le mode arborescent
  1. 24/02/2022, 14h06 #1 progz_du_dimanche progz_du_dimanche est déconnecté Membre à l'essai Homme Profil pro Consultant informatiqueInscrit enDécembre 2021Messages3Détails du profilInformations personnelles :Sexe : HommeLocalisation : France, Hauts de Seine (Île de France)Informations professionnelles :Activité : Consultant informatiqueSecteur : High Tech - Opérateur de télécommunicationsInformations forums :Inscription : Décembre 2021Messages : 3 Par défaut solution exercice montagne russe codingame
    Bonjour à tous, Je suis en train d'essayer de faire l'exercice des montagnes russes sur codingames. J'ai codé une solution qui me permet de passer tous les tests sauf le dernier. Pour comprendre comment traiter un grand nombre de données, je suis allé voir une solution sur google. Et je ne comprends pas en quoi cette solution est plus efficace que la mienne. Si quelqu'un pouvait m'expliquer ? Mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    123456789101112131415161718192021 l, c, n = [int(i) for i in input().split()] tab=[] for i in range(n): pi = int(input()) tab.append(pi) # Write an answer using print # To debug: print("Debug messages...", file=sys.stderr, flush=True) dirham=0 for i in range(c): remplissage=0 for j in range(len(tab)): x=int(tab[0]) remplissage+=x if remplissage>l: break tab.remove(x) tab.append(x) dirham+=x print(dirham)
    La solution que j'ai trouvé (et testé bien entendu) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 places, rides, group_nm = map(int, input().split()) # Gets groups as list of integers groups = list(map(int, [input() for _ in range(group_nm)])) # Initialize dicts profits = {} groups_after = {} for i in range(group_nm): # Starting values current_index = i profits[i] = 0 while True: # Group that's about to ride next_grp = groups[current_index] # Go out of loop when no more places are available if profits[i] + next_grp > places: break # Increase profits by the number of people in group profits[i] += next_grp # Increment the index current_index += 1 # Reset the index if we reached the end of the list current_index = 0 if current_index == group_nm else current_index # We passed through the whole list yet there are more places are available if current_index == i: break # Once done, we want to save the index of the group that needs to ride next groups_after[i] = current_index # Initialize total and reset current index total = 0 current_index = 0 # Sum up the profits for i in range(rides): total += profits[current_index] current_index = groups_after[current_index] # Solution, yay! print(total)
    Evidemment ma solution est moins gracieuse et peut être amélioré. Mais l'ensemble du fonctionnement me semble identique. Si quelqu'un peut éclairer ma lanterne. Merci d'avance.
    Répondre avec citation Répondre avec citation 0 0
  2. 24/02/2022, 19h56 #2 wiztricks wiztricks est déconnecté Expert éminent Homme Profil pro Architecte technique retraitéInscrit enJuin 2008Messages21 790Détails du profilInformations personnelles :Sexe : HommeLocalisation : France, Manche (Basse Normandie)Informations professionnelles :Activité : Architecte technique retraitéSecteur : IndustrieInformations forums :Inscription : Juin 2008Messages : 21 790 Par défaut
    Salut, Déjà à cause des lignes 18 et 19:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    12 tab.remove(x) tab.append(x)
    après vous avez la ligne 14: x = int(tab[0]). tab[0] est déjà un entier. Enfin relisez ces codes, ce ne sont pas les mêmes algorithmes (ou en tous cas, s'ils produisent le même résultat, il ne se lisent pas de la même façon). - W
    Architectures post-modernes. Python sur DVP c'est aussi des FAQs, des cours et tutoriels
    Répondre avec citation Répondre avec citation 0 0
  3. 24/02/2022, 21h37 #3 Sve@r Sve@r est déconnecté Membre prolifique Avatar de Sve@r Homme Profil pro Ingénieur développement logicielsInscrit enFévrier 2006Messages12 874Détails du profilInformations personnelles :Sexe : HommeLocalisation : France, Oise (Picardie)Informations professionnelles :Activité : Ingénieur développement logicielsSecteur : Aéronautique - Marine - Espace - ArmementInformations forums :Inscription : Février 2006Messages : 12 874Billets dans le blog1 Par défaut
    Bonjour Je l'ai fait il y a pas mal de temps cet exercice. Le souci de la solution élémentaire c'est qu'elle est trop longue pour gérer le dernier exercice qui contient (il me semble) 1000000 de personnes. Je l'ai résolu en utilisant les modulos. Si un manège peut accueillir (par exemple) 150 personnes et qu'on doit en faire passer 305, les 300 premières ne comptent pas...Nom : montagnesRusses.png  Affichages : 950  Taille : 22,0 Ko
    Mon Tutoriel sur la programmation «Python» Mon Tutoriel sur la programmation «Shell» Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site Et on poste ses codes entre balises [code] et [/code]
    Répondre avec citation Répondre avec citation 0 0
+ Répondre à la discussion
ActualitésF.A.Q PYTHONTUTORIELS PYTHONSOURCES PYTHONOUTILS PYTHONLIVRES PYTHONPyQt
  • Accueil
  • Forum
  • Autres langages
  • Python
  • Général Python
  • solution exercice montagne russe codingame
« Discussion précédente | Discussion suivante »

Discussions similaires

  1. Andy's Super Great Park, shooter en montagnes russes Par sebangi dans le forum Projets Réponses: 1 Dernier message: 19/10/2013, 20h33
  2. Obtenir la solution exercices du bouquin Swinnen Par rlejeune dans le forum Général Python Réponses: 1 Dernier message: 26/08/2007, 05h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo

Tag » Codingame Solution Python