Mostrando las entradas con la etiqueta omegaup. Mostrar todas las entradas
Mostrando las entradas con la etiqueta omegaup. Mostrar todas las entradas

jueves, 19 de junio de 2025

Two Sum | ¿Dos Sumas? | LeetCode | Hasta encontrar trabajo 1

 A decir verdad no sé si exista una traducción literal para "Two Sum", pero bueno, resolvamos esto de una vez por todas con una explicación sencilla, en español y sin dar tanta vuelta a las explicaciones científicas, técnicas o intelectuales porque ya saben que a nosotros los ingenieros nos gusta andar de "pensantes" en todo momento.

Problema (original):

Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.

You may assume that each input would have exactly one solution, and you may not use the same element twice.

You can return the answer in any order.

 Example 1:

Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].

Problema (traducido por mí):

Dado un arreglo de enteros y un entero designado, obtener las posiciones en el arreglo de los dos números que sumados deben dar como resultado el entero designado.

Es decir que si tienes un arreglo [2, 7, 11, 15] y tu designado es el 9, entonces tus números que sumados dan esa cantidad son el 2 y el 7, los cuales se encuentran en las posiciones [0] y [1] de nuestro arreglo.

Hay que dar por hecho que en todo momento el entero designado tendrá una solución implícita en el arreglo, así que no te preocupes de poner "validaciones" de ningún tipo, solo asegúrate de buscar la respuesta correcta en el menor tiempo posible.

La respuesta entonces sería [0, 1] o [1, 0], finalmente no importa el orden.

Otro ejemplo:


Sermón:

La lógica de esto no es la gran cosa, en realidad es muy sencillo solo colocar un par de ciclos y finalmente encontrarás la respuesta, el verdadero reto es que tu desarrollo sea rápido, preciso y totalmente funcional.
En programación existen 'N' caminos para llegar al mismo destino, igual que en la vida, así que haz tu mejor esfuerzo, en realidad si puedes resolver un problema de una manera, habrás aprendido algo, aunque no sea lo mejor de lo mejor, habrás llegado al resultado esperado y puedes seguir mejorando siempre.

Lógica:

1.- Recorrer todo el arreglo con un ciclo
2.- Comprobar cada número del arreglo sumado con el resto para encontrar la respuesta
3.- Validar que efectivamente encontramos la respuesta
4.- Retornar la respuesta

Programación:

1.- Coloqué un ciclo for que va desde la posición 0 (variable x) hasta la última del arreglo
2.- Dentro de ese ciclo hice otro que comenzará desde una posición adelante de nuestro primer ciclo (variable y = x + 1) y de igual manera terminará hasta la última posición del arreglo.
3.- Ahora sí, dentro del segundo ciclo comencé a validar si la suma del arreglo en la posición 'x' (ARREGLO[x]) y el arreglo en la posición 'y' (ARREGLO[y])
4.- Una vez encontrado el valor, retorno las posiciones 'x' y 'y'

¿Complejo?, no realmente, ¿óptimo?, no realmente, pero sí funcional, hay otras formas de realizar esta búsqueda más rápidamente, utilizando un estructuras de datos más veloces, pero para aprender eso primero tienes que pasar por esto, y practicar hasta mejorar tanto que tú mismo puedas criticar tu propio código.

Resultado:



¡DESCARGA FAST!

Todo el código que quieras, ¡GRATIS!, programación totalmente gratuita.
Comenta, opina, exprésate y déjame saber si quieres algo específico, si algo está mal o si no te gusta algo, para hacer que te guste

miércoles, 16 de junio de 2021

¿Dónde quedó la bolita? | Omega Up 6

Problema de OmegaUp


Clic en el enlace o la imagen :)


Descripción
Seguramente alguna vez has visto a los magos a hacer el truco de donde quedo la bolita, en el cual debajo de una de entre tres nueces hay una bolita y el mago realiza varios movimientos intercambiando la posición de las nueces hasta que uno no recuerda donde quedo.

A ti siempre te ha llamo la atención este juego y ahora deseas hacerlo mas difícil, en ves de tres utilizarás cuatro nueces. Cada movimiento consiste en intercambiar un par de nueces, por lo que solo existen 6 movimientos básicos de intercambiar...

Lista de movimientos:
1. la 1 por la 2
2. la 1 por la 3
3. la 1 por la 4
4. la 2 por la 3
5. la 2 por la 4
6. la 3 por la 4

A cada uno de estos movimientos los nombramos del 1 al 6 según aparece arriba.
Para poder realizar el truco, debes conocer en que posición quedó la bolita después de realizar una secuencia de estos movimientos.

Deberás realizar un programa que conociendo en que nuez se encuentra la bolita inicialmente, la serie de movimientos llevados a cabo, calcule la posición final de la bolita.

Entrada
Tu programa deberá leer los siguientes datos: en la primera lineal el número P, que indica la nuez en la que se encuentra la bolita (de 1 a 4).
En la segunda lineal el numero M de movimientos a realizar.
En las siguientes M líneas un numero indicando que movimiento (del 1 al 6) es el que se va a realizar.

Salida
Tu programa debe escribir un solo numero indicando la nuez en la que se encuentra la bolita.




LO QUE YO ENTIENDO:

Este sí me costó algo de trabajo, de hecho no me salió como 4 veces, pero al final salió. Primero te dice que debes introducir la posición donde se encuentra la bolita, y el siguiente valor es el número de movimientos que debes hacer. Esa cantidad de valores deben tener un número del 1 al 6 haciendo referencia el movimiento marcado mencionado allá arriba en la lista de movimientos.
Debes encontrar la lógica para hacer el recorrido de todos esos movimientos y que al final te dé el resultado correcto, obviamente pensando no siempre se puede, por eso te comparto mi código para que repases y te llenes de lógica.

¿Sencillo, no?

¡DESCARGA FAST!

Todo el código que quieras, ¡GRATIS!, programación totalmente gratuita.
Comenta, opina, exprésate y déjame saber si quieres algo específico, si algo está mal o si no te gusta algo, para hacer que te guste.


martes, 15 de junio de 2021

Bisiesto sencillo | Omega Up 5

Problema de OmegaUp


Clic en el enlace o la imagen :)


Descripción
Un año es bisiesto si es divisible entre 4, excepto que sea divisible entre 100. Sin embargo, si un año es divisible entre 100 y además es divisible entre 400, también resulta bisiesto.

Entrada
La primera línea tendrá un número N, que es el año que tendrás que decidir si es o no bisiesto. Todos los años serán mayores a 1600 y menores a 3,000.

Salida
Para el año de la entrada escribe una "S" o una "N", dependiendo de si el año es bisiesto o no respectivamente.


LO QUE YO ENTIENDO:

Se debe ingresar un año de entre el 1600 y el año 3000. Y haciendo la respectiva comparación te debe decir si es bisiesto o no.
Para quienes no tengan el contexto, cada cuatro años febrero tiene 29 días, pero esta condición solo aplica si el año es divisible entre 4 siempre, y divisible entre 100 y 400, pero si solo es divisible entre 100 y no entre 400 esta regla se rompe, por ejemplo el año 200, ese no es bisiesto aunque sea divisible entre 4, porque además es divisible entre 100 y entre 400 no.

Nací el 27 de Febrero de 1996 -> Fue año bisiesto y nací 2 días antes.

¿Sencillo, no?

¡DESCARGA FAST!

Todo el código que quieras, ¡GRATIS!, programación totalmente gratuita.
Comenta, opina, exprésate y déjame saber si quieres algo específico, si algo está mal o si no te gusta algo, para hacer que te guste.


lunes, 14 de junio de 2021

El Triangulito | Omega Up 4

Problema de OmegaUp


Clic en el enlace o la imagen :)


Descripción
Asunción por algún motivo quiere dibujar un triangulito en la computadora. Como aún no sabe programar interfaces gráficas, lo hace por medio de la consola.

Entrada
Ninguna.

Salida
El dibujo de un triangulo de 4 unidades de altura escrito con el carácter 'o'.

LO QUE YO ENTIENDO:

Se trata de dibujar un pequeño triángulo de 4 caracteres de base por 4 de altura, algo similar a la pirámide de asteriscos que tengo por alguna parte de este blog, deberías buscarla y empaparte de puro conocimiento. Como no se debe centrar, será aún más sencillo.

o
oo
ooo
oooo

¿Sencillo, no?

¡DESCARGA FAST!

Todo el código que quieras, ¡GRATIS!, programación totalmente gratuita.
Comenta, opina, exprésate y déjame saber si quieres algo específico, si algo está mal o si no te gusta algo, para hacer que te guste.


domingo, 13 de junio de 2021

Abuelita come helados | Omega Up 3

     Problema de OmegaUp


Clic en el enlace o la imagen :)


Descripción
A la abuelita de Andrea le gusta mucho comer helados lo que puede llegar a ser un gran problema (demasiada azúcar). Por esa razón, para que su abuelita no coma demasiados helados, Andrea decidió que por cada helado que coma, su abuelita tendrá que comer 3 champiñones (la abuelita de Andrea odia los champiñones). Ayuda a Andrea a averiguar cuántos champiñones le tiene que dar a su abuelita. Andrea te dará el número de helados que su abuelita haya comido.

Entrada
Número de helados que comerá la abuela. 

Salida
Número de champiñones que deberás darle de castigo.

LO QUE YO ENTIENDO:

En realidad no es muy complicado pensar que por cada helado debes castigarla con 3 champiñones, es decir, la tabla del 3. 
1 es a 3
2 es a 6
...
Etc.

¿Sencillo, no?

¡DESCARGA FAST!

Todo el código que quieras, ¡GRATIS!, programación totalmente gratuita.
Comenta, opina, exprésate y déjame saber si quieres algo específico, si algo está mal o si no te gusta algo, para hacer que te guste.

sábado, 12 de junio de 2021

ASCII for first four characters | Omega Up 2

Problema de OmegaUp


Clic en el enlace o la imagen :)


Descripción
Escriba un programa que le pida al usuario que ingrese su nombre. Entonces debería imprimir el Equivalente ASCII de cada uno de los primeros cuatro caracteres de su nombre. Por ejemplo, Aquí hay una muestra del programa a continuación.

Entrada
Cualquier texto, ¡CUALQUIERA!
Ejemplo: Kent

Salida
K ASCII value is 75 
e ASCII value is 101 
n ASCII value is 110 
t ASCII value is 116


LO QUE YO ENTIENDO:

Nada que deba explicar, simplemente el código ASCII es código ASCII, es decir, convertir los primeros 4 caracteres que introducimos en números normales de entre el 0 y el 255.
Facilito, únicamente debemos convertir datos de tipo CHAR en INT, nada nuevo.

¿Sencillo, no?

¡DESCARGA FAST!

Todo el código que quieras, ¡GRATIS!, programación totalmente gratuita.
Comenta, opina, exprésate y déjame saber si quieres algo específico, si algo está mal o si no te gusta algo, para hacer que te guste.


miércoles, 23 de diciembre de 2020

Vector dominante | OmegaUp 1

Problema de OmegaUp


Clic en el enlace o la imagen :)

Descripción
Escribe un programa que lea dos secuencias de n enteros cada una y determine si cada elemento de la primera secuencia es mayor que el elemento respectivo de la otra secuencia.

Entrada
Un entero n seguido de los n enteros de la primera secuencia y los n enteros de la segunda secuencia. Puedes suponer que todos los enteros están en el rango de 1 a 100.

Salida
El valor 1 si se cumple la propiedad descrita o el valor 0 en otro caso.


LO QUE YO ENTIENDO:

El problema te plantea utilizar arreglos, para ser exacto 2 arreglos de la misma longitud, tú defines esa longitud y después los llenas con valores numéricos en un rango de valores de 1 a 100. Si todos los números del primer arreglo son mayores que los del segundo, tu salida debe ser 1, de lo contrario debes regresar un 0 en tu salida.

¿Sencillo, no?

¡DESCARGA FAST!

Todo el código que quieras, ¡GRATIS!, programación totalmente gratuita.
Comenta, opina, exprésate y déjame saber si quieres algo específico, si algo está mal o si no te gusta algo, para hacer que te guste.