La sección de la página
- O(log n) · Fácil
- Gratis
- Python
- JavaScript
- listas
- búsqueda
- índices
Enunciado
Celia arma el periódico y tiene a un lado la lista de las secciones: en qué página empieza cada una, en orden. Llega una corrección para una página y necesita saber de qué sección es, para avisarle a quien la escribió.
Escribe una función que reciba la lista de páginas donde arranca cada sección y el número de una página, y regrese la posición de la sección a la que pertenece esa página, contando las secciones desde 0. Es la última sección cuyo arranque no se pasa de esa página.
Con los arranques 1, 9, 14 y 20, la página 13 es de la sección 1, porque esa sección va de la página 9 a la 13. La página 9 también es de la sección 1: la página donde arranca una sección ya cuenta como suya.
La lista trae al menos un arranque, el primero siempre es la página 1 y la página que te piden siempre es 1 o más, así que siempre hay respuesta.
No se vale usar lo que ya trae el lenguaje para encontrar una posición (index, indexOf, findIndex, findLastIndex): el chiste del reto es partir la lista.
Idea: búscala por mitades. Si el arranque de en medio no se pasa de la página, esa sección es candidata: anótala y sigue buscando a la derecha, por si más adelante hay otra que tampoco se pasa. Si se pasa, tira esa mitad.
Ejemplos
La corrección de la página 13
[1, 9, 14, 20], 13 → 1
La página donde arranca una sección
[1, 9, 14, 20], 9 → 1
La primera página
[1, 9, 14, 20], 1 → 0
La última sección
[1, 9, 14, 20], 25 → 3
La página antes del último arranque
[1, 9, 14, 20], 19 → 2
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def seccion(inicios, pagina):
passJavaScript
function seccion(inicios, pagina) {
}Se abre en el navegador, con el editor y las pruebas. Es gratis y no hace falta cuenta para empezar.
Más retos de O(log n)
- Las balizas que faltanlistas · búsqueda · índices
- Las capturas del mismo pesolistas · búsqueda · índices
- Las compuertas del canaldiccionarios · búsqueda · listas
- Las parcelas cuadradasdivisión · búsqueda · operaciones
- Las sacas que se acumulanoperaciones · búsqueda · ciclos
- Los barcos de abastodivisión · búsqueda · ciclos