
Convex Hull
Se te dará una lista de puntos en un plano de coordenadas y deberás encontrar la envolvente convexa de dichos puntos. La envolvente convexa de un conjunto de X puntos en el plano euclidiano corresponde al set convexo más pequeño que contiene X. Por ejemplo, cuando X es un subconjunto acotado del plano, la envolvente convexa puede ser visualizada como el contorno formado por una banda elástica estirada alrededor de X. Si un punto se encuentra en el borde, quedará incluido en dicha banda.
Los puntos se presentan como una lista de coordenadas [x, y] en la que x e y son enteros ( int ). Deberás entregar el resultado como una secuencia de los índices correspondientes a la envolvente, en sentido horario (ver la imagen). La secuencia se inicia desde el punto ubicado en el extremo inferior izquierdo. Recuerda: Deberás devolver una lista de índices y no los puntos de por sí.
Datos de Entrada: Una lista de coordenadas. Cada coordenada es una lista de dos enteros ( int ).
Salida: La envolvente como una lista de los índices de las coordenadas, a partir de la lista dada.
Ejemplo:
checkio([[7, 6], [8, 4], [7, 2], [3, 2], [1, 6], [1, 8], [4, 9]]) == [4, 5, 6, 0, 1, 2, 3] checkio([[3, 8], [1, 6], [6, 2], [7, 6], [5, 5], [8, 4], [6, 8]]) == [1,...