Soleil levant

Série d'exercice

Cet exercice fait suite à l'exercice du « Soleil couchant ». Il est conseillé de l'avoir résolu avant d'aborder celui-ci.

Une fois cet exercice traité, vous pourrez aborder « Tour d'horizon ».

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

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

Les bâtiments aux indices 6, 4 et 2 reçoivent des rayons de soleil alors que le bâtiment à l'indice 5 est masqué.

Les trois bâtiments aux indices [2, 4, 6] reçoivent des rayons de soleil sur au moins un étage et sont donc éclairés, alors que les autres ne le sont pas.

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 (comme à l'indice 1 sur la figure précédente).

Pour l'exemple ci-dessus, cette liste est [4, 0, 6, 3, 5, 2, 3].

É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.

Exemples
>>> nb_batiments_eclaires([4, 0, 6, 3, 5, 2, 3])
3
>>> nb_batiments_eclaires([4, 3, 2, 1, 0])
4
###(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 : 10/10
.128013:,ag)1ikn9/S=vmsuhb84;y7e[6+2o-dt c0(w]r5_P3plf050G0z0H0d0h0U0q0I0J0U0d0q0q0n010H0h0T010406050q0r0p0p0d0O0x040m0E0U0r0:0E0j050l0`0|0~100^0T04191g051j0l1j1l1g0^0G0h0o0(0*0,0.0s0h0e0s0U1z0s0H0?050Z0t0U0z1u0+0-011y1A1C1A0H1I1K1G0H0t0E0G101H0O1h0H0s0(130q0T0d0j0.0D011M1w010V0#0z0j0d0p0z1G1.1:1^1O1{1K1~200?0a0I0R0O0E0T0E0q0h160j0I0X1,0O0O0z0J2l19230j1h0l1*2y0H1(1%1)0G250.1C0j1}2i1G1r1t0)1N2I0h2K0j1!1s1G0T2r1h2w2y2$0_1/2m2Q1_2V0O0}0U0?0g2v2*0@2)242,1O2.2:0?0D2@1:2_2w2H012~0d2;040S322x0^352|0.383a0v3d342*363j0?0P3m3f3o3h370E2/390?0B3t2`2+1v2}3y2 040y3D3g3G3i3I3A040u3M3v3O3x3z3a0k3m1i2!192O2B0G2F360J1!211h3)1k3%2(1a2^053.0X2#3V2R010i0?0X0V3#3N400M0?0I463 2-0V0?0j0t0Q0t0d0:200j0H0q0Q2s0*0h2r0q4c2{3W0=040L4x3F400j0?0s0d150z0r0O4w3_333E364A0f0b3t0I4X4b472-0?4v0r0U0Z0H3m4Z4d1O0E0?0n4,4R3w0p0h0?0K4W4Y4@3W4G040T0*0V170G4?4!4/4;584.0.4_4{4}4X4 404204550O5c4y4F0?0h5p4E1_0E49042T5u3p0t4$1:0e0z4D4S0?4C4P2x5j2-5D04285I3w4A5L2(593i4H4J0H4L4N5T4z0?0f5B3w4:040F5-3W5f042?5M3~5q1_4A0c5=405/5;5`5O1O5@5_5X5d015~605w0?63695|664`5^5)404T4V5`064Y6s4-6i5Z040s6d5a044=5`6u5v2}5!4K4M4O6h6F0.4A0A6m4#5z6Q1O4A0N5h6t650.5l0h456D6Z374H6z0.5/020e0H0w6,6*5254566T6N0?6p2$6r6t716)51530d550j576(5Y015/6C2$6E3p6+6q71727b514%4)4l6?5/0C7e2^7g4^6k682^705i7b5l2r0H4M187a6a7n0z0`7p4+6q193|0z2y2Z7T3(1s3*2B2D2z1Z1#2B0d1J7W0l3)0^7-0Y0!0$04.