# Examen 2024
---
_**201.1 Algorithmes et Structures de données**_

Voici mes réponses pour l'examen 2024 d'_Algorithmes et Structures de données_ ainsi que les tests unitaires fournis.
## Exercice 1
But |
Compter le nombre de triangles dans un graphe |
Input |
Liste des arêtes du graphe |
Output |
Nombre de triangles |
Signature |
```python
def countTriangles(
edges: list[tuple[int, int]]
) -> int:
```
|
[Source](https://git.kb28.ch/HEL/AlgoDS-Examen2024/src/branch/main/src/ex1_triangles.py)
/
[Tests](https://git.kb28.ch/HEL/AlgoDS-Examen2024/src/branch/main/tests/test_ex1.py)
## Exercice 2
But |
Calculer le plus grand nombre d'émissions complètes consécutives qui peuvent être enregistrées sur un disque de taille finie |
Input |
Liste des durées des émissions, durée totale d'enregistrement maximum |
Output |
Nombre maximum d'émissions consécutives complètes enregistrables |
Signature |
```python
def startRecordingAt(
tv_show: list[int],
hard_drive_memory: int
) -> int:
```
|
[Source](https://git.kb28.ch/HEL/AlgoDS-Examen2024/src/branch/main/src/ex2_tv.py)
/
[Tests](https://git.kb28.ch/HEL/AlgoDS-Examen2024/src/branch/main/tests/test_ex2.py)
## Exercice 3
But |
Calculer le score maximum en prenant tour à tour un des côtés d'une série de cartes |
Input |
Liste des cartes (valeurs) |
Output |
Score maximum face à un adversaire optimal |
Signature |
```python
def tauntScore(
cards: list[int]
) -> int:
```
|
[Source](https://git.kb28.ch/HEL/AlgoDS-Examen2024/src/branch/main/src/ex3_cards.py)
/
[Tests](https://git.kb28.ch/HEL/AlgoDS-Examen2024/src/branch/main/tests/test_ex3.py)
## Exercice 4
But |
Trouver la meilleure manière de déplacer des meubles d'un agencement donné à un autre |
Input |
Agencement actuel, agencement final\
(grille de valeurs, 0=vide, `i`=meuble n°`i`)
|
Output |
Liste des états intermédiaires |
Signature |
```python
def minimumMoves(
current_plan: list[list[int]],
target_plan: list[list[int]]
) -> list[list[list[int]]]:
```
|
[Source](https://git.kb28.ch/HEL/AlgoDS-Examen2024/src/branch/main/src/ex4_furniture.py)
/
[Tests](https://git.kb28.ch/HEL/AlgoDS-Examen2024/src/branch/main/tests/test_ex4.py)