Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/waldohidalgo/rutas_code_chef

Repositorio con el código de ejercicios y proyectos de diversas rutas completadas en CodeChef
https://github.com/waldohidalgo/rutas_code_chef

codechef codechef-solutions

Last synced: about 1 month ago
JSON representation

Repositorio con el código de ejercicios y proyectos de diversas rutas completadas en CodeChef

Awesome Lists containing this project

README

        

# Ejercicios y Proyectos Realizados para Codechef

Repositorio que contiene los ejercicios y proyectos requeridos para diversas rutas de aprendizaje que voy realizando en el tiempo. Subo todo lo realizado una vez que obtengo cada certificado.

## Tabla de Contenido

- [Ejercicios y Proyectos Realizados para Codechef](#ejercicios-y-proyectos-realizados-para-codechef)
- [Tabla de Contenido](#tabla-de-contenido)
- [Rutas Finalizadas](#rutas-finalizadas)
- [Linked List](#linked-list)
- [Certificado](#certificado)
- [OOPS Concepts in Python](#oops-concepts-in-python)
- [Certificado](#certificado-1)
- [2D Array / Matrices](#2d-array--matrices)
- [Ejercicios Resueltos](#ejercicios-resueltos)
- [Certificado](#certificado-2)
- [Prefix Sum Problems](#prefix-sum-problems)
- [Ejercicios Resueltos](#ejercicios-resueltos-1)
- [Certificado](#certificado-3)
- [Combinatorics Problems](#combinatorics-problems)
- [Ejercicios Resueltos](#ejercicios-resueltos-2)
- [Certificado](#certificado-4)

## Rutas Finalizadas

### Linked List

En esta ruta se ejercitan linked list simples y dobles con punteros en el head y/o tail.

#### Certificado

![Certificado Linked List](./LinkedList/certificado-Linked%20Lists.webp)

### OOPS Concepts in Python

En la ruta se ejercitan conceptos como clases, clases abstractas, métodos estáticos, composition, atributos privados, protegidos y públicos, multithreads, handle files y generics.

#### Certificado

![Certificado OOPS Concepts in Python](./ObjectPrinciples/OOPS%20Concepts%20in%20Python%20Certificate.webp)

### 2D Array / Matrices

Se practican conceptos como reducción de tiempo de complejidad de algoritmos, implementación de breadth first search algorithm, depth first search algorithm, árboles binarios, dynamic programming entre otros junto con resolver todos los ejercicios de practica siguientes (más abajo muestro el código solo de los ejercicios resultos de dificultad Hard el resto de soluciones se encuentra en el repositorio en la carpeta Matrix):

#### Ejercicios Resueltos

1-Add Two Matrices

2-Zig-zag traversal

3-Upside Down Matrix

4-Sum of Diagonals

5-Count Negative Numbers

6-Multiplication of Two Matrices

7-Valid Matrix Sum

8-Sort Matrix Diagonally

```py
m,n=map(int,input().split())
matrix=[]
for i in range(m):
matrix.append(list(map(int,input().split())))

def sortDiagonally(matrix):
for k in range(n):
i=0
j=k
temp=[]
while i0 and maxValues[1]>0 :
counts=[0,0]
for k in range(2):
while counts[k]=0 and matrix[i-1][j]==1:
matrix[i-1][j]=2
q.append((i-1,j))

if j-1>=0 and matrix[i][j-1]==1:
matrix[i][j-1]=2
q.append((i,j-1))

time+=1
return time-1
q=deque()

for i in range(n):
for j in range(m):
if matrix[i][j]==2:
q.append((i,j))

minRotting=bfs(q,matrix)

for i in range(n):
for j in range(m):
if matrix[i][j]==1:
minRotting=-1
break

print(minRotting)
```

18-Search In Matrix

19-Distance to Nearest 0 (Hard)

```py
from collections import deque

n,m=map(int,input().split())
matrix=[list(map(int,input().split())) for _ in range(n)]

aux=[[float('inf')]*m for _ in range(n)]

queue=deque()

for i in range(n):
for j in range(m):
if matrix[i][j]==0:
aux[i][j]=0
queue.append((i,j))

while queue:
i,j=queue.popleft()

if i+1aux[i][j]+1:
aux[i+1][j]=aux[i][j]+1
queue.append((i+1,j))

if j+1aux[i][j]+1:
aux[i][j+1]=aux[i][j]+1
queue.append((i,j+1))

if i-1>=0 and aux[i-1][j]>aux[i][j]+1:
aux[i-1][j]=aux[i][j]+1
queue.append((i-1,j))

if j-1>=0 and aux[i][j-1]>aux[i][j]+1:
aux[i][j-1]=aux[i][j]+1
queue.append((i,j-1))

for i in range(n):
for j in range(m):
print(aux[i][j],end=" ")
print()
```

20-Median in Matrix

21-Spiral rotation

#### Certificado

![2D Array / Matrices CodeChef Certificate](./Matrix/2D_array_matrices_certificate.webp)

### Prefix Sum Problems

Se implementan arrays de operaciones prefix o suffix precalculadas con el objetivo de reducir la complejidad temporal de los algoritmos, a cambio de un incremento en la complejidad espacial. Esta técnica optimiza el rendimiento al evitar la repetición de cálculos sobre los mismos datos.

#### Ejercicios Resueltos

En el siguiente [README.md](./PrefixSum/README.md) explico el enfoque de cada solución a cada problema siguiente:

1-Creating Prefix Array

2-Optimization Using Prefix Array

3-Good subarrays

4-Counting Pretty Numbers

5-Little Chef and Sums

6-Good Subarrays 2

7-Suffix Arrays

8-Mystical Numbers

9-Optimal Denomination

10-Binod

11-Rectangular Queries

12-Again XOR problem

13-Segmentation Fault

14-Triplets Min

#### Certificado

![Prefix Sum Certificado](./PrefixSum/Prefix_Sum_Problems_Certificate.webp)

### Combinatorics Problems

Se implementan técnicas de conteo vía agrupaciones e implementación posterior en código.

#### Ejercicios Resueltos

En el siguiente [README.md](./Combinatorics/README.md) se encuentra la explicación a los ejercicios más interesantes y relevantes realizados siguientes:

1- Fruit Basket

2- Divisibility Problem

3- Word Counting

4-Permutation Subsequence

5-Distance Coloring

6-Robot Movings

7-Marbles

#### Certificado

![Combinatorics Problems Certificado](./Combinatorics/Combinatorics_Certificate.webp)