-
Notifications
You must be signed in to change notification settings - Fork 44
Description
🔀 Control de Acceso Circular
Escenario
El sistema biométrico de acceso al refugio está basado en una lista circular. Cada visitante es registrado en una lista simplemente enlazada circular, sin cabecera. El sistema sólo puede mantener un único iterador.
Desafío
Queremos simular una cola (FIFO) de acceso al refugio. Evaluá estas dos opciones:
- a) El iterador apunta al primer nodo (visitante en la entrada).
- b) El iterador apunta al último nodo (visitante más reciente).
Explicá cuál opción permite realizar enqueue y dequeue en tiempo constante O(1), y justificá tu elección.
🔥 Protocolo de Eliminación (Josephus)
Escenario
Durante una simulación de combate, se propuso el protocolo de eliminación Josephus:
- Hay N soldados en un círculo.
- Se pasa una granada de entrenamiento.
- Luego de M pases, el soldado con la granada es eliminado.
- El siguiente retoma el ciclo hasta que solo queda un ganador.
Tareas
- Implementá una función que reciba
NyMy devuelva el orden de eliminación y el ganador. - Analizá la complejidad temporal.
- Si
M = 1, analizá el impacto en rendimiento paraN > 100000.
Hint: Idealmente deberías usar una lista circular. Eliminar nodos con eficiencia es clave.
📦 Transferencias entre Módulos Limitados
Escenario
Alice, una ingeniera, dispone de 3 módulos de almacenamiento:
A: capacidad 100 (lleno).B: capacidad 5 (vacío).C: capacidad 3 (vacío).
La única operación permitida es transfer(S, T), que transfiere elementos de una pila S a T hasta que S esté vacía o T llena.
Desafío
Diseñá una secuencia de transfer() para que al final la pila B contenga exactamente 4 elementos.
Pensá en el orden de transferencias entre
A,ByC. Podes usar papel o una simulación simple.
♻️ Cola usando Pilas
Escenario
El sistema de eventos del refugio sufrió una falla. La cola nativa dejó de funcionar. La solución temporal propuesta fue emular una cola usando dos pilas.
Desafío
Implementá una clase QueueViaStacks que soporte enqueue, dequeue y front usando sólo dos stacks.
- Justificá cómo se mantiene el orden FIFO.
- Bonus: agregá comandos de consola para probarlo.
🧱 4. Visibilidad en la Torre de Vigilancia
Basado en pilas y recorrido en reversa
Desde una torre en el Refugio 33 se observan soldados alineados de izquierda a derecha. Se conoce la altura de cada uno.
Consigna:
Dado un vector de alturas de soldados, devolvé un vector respuesta[i] que indique cuántos soldados puede ver el soldado i hacia su derecha, considerando:
- El soldado
ipuede ver aljsii < jy todos los soldados entreiyjson más bajos que ambos.
Input: [10,6,8,5,11,9]
Output: [3,1,2,1,1,0]Input: [5,1,2,3,10]
Output: [4,1,1,1,0]Tip: Este ejercicio se puede resolver en O(n) usando una pila.
Modalidad de entrega
Comentario en esta issue