Aller au contenu

Soleil couchant

Le cadre

Lorsque des bâtiments sont alignés, ils se font de l'ombre les uns les autres. Dans cet exercice, nous sommes au soleil couchant, les rayons du soleil sont donc supposés horizontaux.

Le schéma ci-dessus illustre un soleil couchant qui éclaire 9 bâtiments, les rayons du soleil sont représentés par des flèches horizontales.

  • Les bâtiments aux indices 0 et 2 reçoivent des rayons de soleil alors que le bâtiment à l'indice 1 est masqué.
  • Les 4 bâtiments aux indices [0, 2, 6, 9] reçoivent des rayons de soleil sur au moins un étage et sont donc éclairés, alors que les autres ne le sont pas.
  • Il n'y a pas de bâtiment à l'indice 4.

Exercice

Coder une fonction nb_bâtiments_éclairés qui prend en argument la liste hauteurs des bâtiments et qui renvoie le nombre de bâtiments éclairés.

  • La hauteur des bâtiments (en nombre d'étages) est donnée par une liste d'entiers positifs.
  • Une hauteur de zéro étage signifie l'absence de bâtiment.
  • Pour l'exemple ci-dessus, cette liste est [2, 1, 4, 2, 0, 4, 5, 3, 5, 6] ; il y a 4 bâtiments éclairés.
Exemples d'utilisation
>>> nb_bâtiments_éclairés([2, 1, 4, 2, 0, 4, 5, 3, 5, 6])
4
>>> nb_bâtiments_éclairés([0, 3, 1, 2])
1
###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : /
.128013x5/f7B8âr;nb _o=ylaepcwgu)vd4613kméh?tsP(S0+2C-i:050C0u0M0t0W0s0N0n0w0s0t0N0N0q010M0W0v010406050N0z0I0I0t0j0r040Q0p0s0z0=0p0l050d0|0~10120`0v04051i1b1l0d1i0`0C0W0B0*0,0.0:0K0W0y0K0s1z0K0M0^050#0m0s0u1u0-0/011y1A1C1A0M1I1K1G0M0j1j0M0K1M1w010e0%0u0l0t0I0u010*150N0v0t0l0:0T1G1@1_1%1O1*1K1-1/0^0a0n0O0j0p0v0p0N0W180l0n0Z1=0j0j0u0w2g1b1~0l1j0d1#2t1Y1!1Z1H0C200:1C0l1,2d1G1r1t0+1N2D0W2F0l0p2J1G0v2m1j2r2t2X0{1^2h2L1(2Q0j0 0s0^0F2q2#0_2!1 2%1O2)2+0^0T2/1_2;2r2C012_0t2,040G2}2s0`302@0:33350D382 2#313e0^0c3h3a3j3c320p2*340^0E3o2=2$1v2^3t2`040f3y3b3B3d3D3v040h3h1m2V1b2J2w0C1!2B3r0w2R1:1j3T1k3R2Z1c2:053Z0Z2W3q3J010H0^0Z0e3P3I2M010x0^0n3{3;3}0l0e0^0l0m0o0m0i0=1/0l0M0N0o0J2L0W0j0J0N422?3=0@040P4p3A440^0K0t170u0z0j4o3+2~3z314s0A0X3o0n4O413|2(0^0u0e0e2n0=3`4G2s4Q431(0p0^0q3h4$4q3}0I0W0^0R4N4P4I3r0l0^0 0b0W4,4_3=4)044+4!044-4w1(4:4=4@4O513}3@040e3t504R2^4y5l4%1O0p3 042O5p4.4S044z4B4D4F2Z5m0:4s4M56064P5L58315h0W4Z2X5N4`5o565T520^020y0M0k5w595n044}4 565f1(5H5d5M5L5/5*5,5(3153555S5^3d5V2X5K5?5M60324T4V4X5Q5{3r530S5~2:5X4/4;042.5J5@5F3?0^2m0M4D1a5W674{044U4W2o6c5J1b3.0u2t2U6I3S1s3U2w2z2u0t1J6L0d3T0`6V0!0$0(2;2J310t0C0I192f0W190n0m190z0N0^1h6(6*6,2g0V0=0M1W040g6=4F1p1k040U0p0~1,0M0n6+1r1*0u0j0n0s00340y3t2f0K1/0n2e0n6/0Z0 0l2j1K0n2Q0I0m2m2i1L4b4d7c0)0t0B2n0n4A7e0p2O0)0Z0z0b0n0J0#0y0u0)4j0,4l4n0n0L1m2;6V6N.