Retourner au contenu associé (entrée de forum : Advent of Code 2023 : Day 2)
Posté par alberic89 🐧 le 04 décembre 2023 à 20:04. En réponse au message Advent of Code 2023 : Day 2. Évalué à 1.
Ma solution en Python :
#!/bin/python3 maxvalues = { "red":12, "green":13, "blue":14, } def number(game): return int(game.split(":")[0][5:]) def possible(game): gamelist = game.split(":")[1].split(";") for g in gamelist: colorlist = g.split(",") for c in colorlist: n = int(c.split(" ")[1]) color = c.split(" ")[2] if n > maxvalues[color]: return False return True def power(game): minimum = { "red":0, "green":0, "blue":0, } gamelist = game.split(":")[1].split(";") for g in gamelist: colorlist = g.split(",") for c in colorlist: n = int(c.split(" ")[1]) color = c.split(" ")[2] if n > minimum[color]: minimum[color] = n return minimum["red"]*minimum["blue"]*minimum["green"] def solve1(testinput,testing=False): s = 0 for line in testinput: if line == "" : continue p = possible(line) if testing: print(line, "=", p, ";Number=", number(line)) if p: s += number(line) if testing: print(s) return s def solve2(testinput,testing=False): s = 0 for line in testinput: if line == "" : continue p = power(line) if testing: print(line, ";Power=", p) s += p if testing: print(s) return s test1 = """Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green""" result1 = 8 test2 = test1 result2 = 2286 def solve(short=False): print("----Part 1----") if short == False: if solve1(test1.split("\n"),testing=True) != result1: print("Not working.") return False else : print("Maybe working?") with open("input.txt",'r') as file: lines = file.read().split("\n") s1 = solve1(lines) print(s1) print("----Part 2----") if short == False: if solve2(test2.split("\n"),testing=True) != result2: print("Not working.") return False else : print("Maybe working?") with open("input.txt",'r') as file: lines = file.read().split("\n") s2 = solve2(lines) print(s2) return s1, s2 if __name__ == "__main__": from sys import argv try: if argv[1] == "--summary" or argv[1] == "-s": solve(short=True) except IndexError: solve()
C'était presque simple aujourd'hui, c'est suspect.
L'informatique n'est pas une science exacte, on n'est jamais à l'abri d'un succès
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
# C'était trop simple... je suspecte un piège !
Posté par alberic89 🐧 . En réponse au message Advent of Code 2023 : Day 2. Évalué à 1.
Ma solution en Python :
C'était presque simple aujourd'hui, c'est suspect.
L'informatique n'est pas une science exacte, on n'est jamais à l'abri d'un succès