Soleil couchant

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.

Écrire une fonction nb_batiments_eclaires 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].
Exemples
>>> nb_batiments_eclaires([2, 1, 4, 2, 0, 4, 5, 3, 5, 6])
4
>>> nb_batiments_eclaires([0, 3, 1, 2])
1
###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
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 : 5/5
.128013(lbsSetph4rd;5f180uma"ov+w7g_/3=in 6k:)y 2Pc030g0a0b0p0B06080J0M060p08080A0q0b0B0c0q020D03080n0o0o0p0f0I02090r060n0%0r0C030y0-0/0;0?0+0c0203160 190y160+0g0B0s0V0X0Z0#0d0B0w0d061n0d0b0)030Q07060a1i0Y0!0q1m1o1q1o0b1w1y1u0b0f170b0d0V0_080c0p0C0#0K0q1A1k0q0j0S0a0C0p0o0a1u1T1V1!1C1%1y1)1+0)040J0L0f0r0c0r080B0|0C0J0O1R0f0f0a0M230 1.0C170y1P2g1M1O1N1v0g1:0#1q0C1(201u1f1h0W1B2q0B2s0C0r2w1u0c29172e2g2K0,1U242y1#2D0f0:060)0k2d2O0*2N1/2Q1C2S2U0)0K2Y1V2!2e2p0q2(0p2V020z2,2f0+2/2%0#2=2@0e2`2.2O2:300)0i332|352~2;0r2T2?0)0E3a2#2P1j2'3f2)020v3k2}3n2 3p3h020l331a2I0 2w2j0g1O2o3d0M2E1,173F183D2M102Z033L0O2J3c3v0q0F0)0O0j330J3l360j0)0C070x070p0%1+0C0b080x2a0X0B29083B3u2z0q0(0205423Z440C0)0d0p0{0a0n0f413T2-3+3d460H0G3a0J4t3*432R0)400n060Q0b3)4n3!0r0)0A4E4w1C0o0B0)0m4s4u4F4b0)0c0X0j0}0g4K4a1#4H024J4l2f4v4$4M4O024Q4*0*4u4,2$3!3$024Y0f4#4_4U020d4 3m440r0u0)2B54364d4f0b4h4j49501#464r4=0D4@4@4T1#4{0B3(4=4^554x525b3d4'000w0b0h5B3!4c024W0p4Y0C4!4=5r1C5l4R5p5p5S2 4V4X4Z5I564I5%5z535n5W5W5Y2;4y0a0-4B3?5)1C4'0t4)2K5x2:4N2W5V5 3d4{290b4i0~5w5/5K4z5@4D5n0 3W0a2g2H6k3E1g3G2j2m2h0p1x6n0y3F0+6x0P0R0T02.