Retourner au contenu associé (entrée de forum : Avent du Code, jour 8)
Posté par steph1978 le 08 décembre 2022 à 11:19. En réponse au message Avent du Code, jour 8. Évalué à 3.
Même méthode pour les deux parties : un parcours de chaque position d'une matrice. Pour chaque position, regarder à gauche, à droite, en haut, en bas. Ça donne pas un code très beau mais ça marche.
import sys L = list(list(map(int,s)) for s in sys.stdin.read().splitlines()) W = len(L[0]) ; H = len(L) N=0 for i in range(H): for j in range(W): v = L[i][j] # look right r = all(L[i][k]<v for k in range(j+1, W)) # look left l = all(L[i][k]<v for k in range(j)) # look up u = all(L[k][j]<v for k in range(i)) # look down d = all(L[k][j]<v for k in range(i+1,H)) N += (r|l|u|d) print(N, W*H)
Encore plus moche car le code à répéter quatre fois est plus long.
import sys L = list(list(map(int,s)) for s in sys.stdin.read().splitlines()) W = len(L[0]) ; H = len(L) S=0 for i in range(H): for j in range(W): v = L[i][j] # look right r = 0 for k in range(j+1, W): r += 1 if L[i][k]>=v: break # look left l = 0 for k in range(j-1,-1,-1): l+=1 if L[i][k]>=v: break # look up u = 0 for k in range(i-1,-1,-1): u+=1 if L[k][j]>=v: break # look down d = 0 for k in range(i+1,H): d += 1 if L[k][j]>=v: break S = max(S,r*l*u*d) print(S)
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
# python procédural, moche mais efficace
Posté par steph1978 . En réponse au message Avent du Code, jour 8. Évalué à 3.
Même méthode pour les deux parties : un parcours de chaque position d'une matrice. Pour chaque position, regarder à gauche, à droite, en haut, en bas. Ça donne pas un code très beau mais ça marche.
part 1
part 2
Encore plus moche car le code à répéter quatre fois est plus long.