From 50f91a7ee63f288b39074b6249ca93f14f42e93f Mon Sep 17 00:00:00 2001 From: "Mikto.Vtori" Date: Tue, 24 Jan 2023 10:45:07 +0200 Subject: [PATCH] Redid Multidimensional Lists - Lab --- .../01. Sum Matrix Elements.py | 10 +- .../02. Even Matrix.py | 40 +++- .../03. Flattening Matrix.py | 21 ++- .../04. Sum Matrix Columns.py | 35 +++- .../05. Primary Diagonal.py | 39 ++-- .../06. Symbol in Matrix.py | 28 ++- .../07. Square with Maximum Sum.py | 175 ++++++++++-------- 7 files changed, 232 insertions(+), 116 deletions(-) diff --git a/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/01. Sum Matrix Elements.py b/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/01. Sum Matrix Elements.py index 5a97529..e6f5c07 100644 --- a/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/01. Sum Matrix Elements.py +++ b/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/01. Sum Matrix Elements.py @@ -1,13 +1,13 @@ -sum_elements_in_matrix = 0 - rows, columns = list(map(int, input().split(", "))) matrix = [] -for row in range(rows): +sum_matrix = 0 + +for row in range(rows): cols = list(map(int, input().split(", "))) - sum_elements_in_matrix += sum(cols) matrix.append(cols) + sum_matrix += sum(cols) -print(sum_elements_in_matrix) +print(sum_matrix) print(matrix) \ No newline at end of file diff --git a/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/02. Even Matrix.py b/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/02. Even Matrix.py index c57bd5a..3e19b36 100644 --- a/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/02. Even Matrix.py +++ b/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/02. Even Matrix.py @@ -1,14 +1,34 @@ rows = int(input()) matrix = [] +even_matrix = [] + for row in range(rows): - columns = [int(num) for num in input().split(", ")] - matrix.append([num for num in columns if num % 2 == 0]) - # matrix.append( - # [ - # int(num) for num in input().split(", ") - # if int(num) % 2 == 0 - # ] - # ) - -print(matrix) \ No newline at end of file + columns = list(map(int, input().split(", "))) + matrix.append(columns) + +[even_matrix.append([num for num in matrix[row] if num % 2 == 0]) for row in range(rows)] + +print(even_matrix) + + + +# rows = int(input()) +# +# matrix = [] +# for row in range(rows): +# columns = [int(num) for num in input().split(", ")] +# matrix.append([num for num in columns if num % 2 == 0]) +# # matrix.append( +# # [ +# # int(num) for num in input().split(", ") +# # if int(num) % 2 == 0 +# # ] +# # ) +# +# print(matrix) + + + +# even_matrix = [] +# result = [[even_matrix.append([num for num in list(map(int, input().split(", "))) if num % 2 == 0]) for row in range(int(input()))], print(even_matrix)] diff --git a/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/03. Flattening Matrix.py b/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/03. Flattening Matrix.py index 47bef1c..414024f 100644 --- a/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/03. Flattening Matrix.py +++ b/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/03. Flattening Matrix.py @@ -3,8 +3,23 @@ matrix = [] for row in range(rows): - columns = input().split(", ") + columns = list(map(int, input().split(", "))) matrix.append(columns) -flattening_matrix = [int(num) for elements in matrix for num in elements] -print(flattening_matrix) \ No newline at end of file +flattening_matrix = [] +[[flattening_matrix.append(num) for num in matrix[row]] for row in range(rows)] + +print(flattening_matrix) + + + +# rows = int(input()) +# +# matrix = [] +# +# for row in range(rows): +# columns = input().split(", ") +# matrix.append(columns) +# +# flattening_matrix = [int(num) for elements in matrix for num in elements] +# print(flattening_matrix) \ No newline at end of file diff --git a/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/04. Sum Matrix Columns.py b/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/04. Sum Matrix Columns.py index 04f538f..e827ddd 100644 --- a/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/04. Sum Matrix Columns.py +++ b/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/04. Sum Matrix Columns.py @@ -1,19 +1,34 @@ -rows, columns = [int(num) for num in input().split(", ")] +rows, columns = list(map(int, input().split(", "))) matrix = [] +sum_columns = [[] for _ in range(columns)] for row in range(rows): - cols = [int(num) for num in input().split()] + cols = list(map(int, input().split())) matrix.append(cols) -sum_matrix = [] + for col in range(columns): + sum_columns[col].append(cols[col]) -for column in range(columns): - column_sum = 0 +[print(sum(cols)) for cols in sum_columns] - for row in range(rows): - column_sum += matrix[row][column] - sum_matrix.append(column_sum) - -[print(num) for num in sum_matrix] \ No newline at end of file +# rows, columns = [int(num) for num in input().split(", ")] +# +# matrix = [] +# +# for row in range(rows): +# cols = [int(num) for num in input().split()] +# matrix.append(cols) +# +# sum_matrix = [] +# +# for column in range(columns): +# column_sum = 0 +# +# for row in range(rows): +# column_sum += matrix[row][column] +# +# sum_matrix.append(column_sum) +# +# [print(num) for num in sum_matrix] \ No newline at end of file diff --git a/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/05. Primary Diagonal.py b/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/05. Primary Diagonal.py index 2821935..cfb97c9 100644 --- a/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/05. Primary Diagonal.py +++ b/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/05. Primary Diagonal.py @@ -1,17 +1,30 @@ -rows = int(input()) +square_size = int(input()) # rows and columns -matrix = [ - [ - int(num) - for num in input().split() - ] - for row in range(rows) -] +matrix = [] +primary_diagonal_sum = 0 -sum_diagonal = 0 +for row in range(square_size): + columns = list(map(int, input().split())) + matrix.append(columns) + primary_diagonal_sum += columns[row] -for column in range(rows): - row = column - sum_diagonal += matrix[row][column] +print(primary_diagonal_sum) -print(sum_diagonal) \ No newline at end of file + +# rows = int(input()) +# +# matrix = [ +# [ +# int(num) +# for num in input().split() +# ] +# for row in range(rows) +# ] +# +# sum_diagonal = 0 +# +# for column in range(rows): +# row = column +# sum_diagonal += matrix[row][column] +# +# print(sum_diagonal) \ No newline at end of file diff --git a/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/06. Symbol in Matrix.py b/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/06. Symbol in Matrix.py index 8817530..9128050 100644 --- a/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/06. Symbol in Matrix.py +++ b/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/06. Symbol in Matrix.py @@ -25,4 +25,30 @@ break if not found_symbol: - print(f"{find_symbol} does not occur in the matrix") \ No newline at end of file + print(f"{find_symbol} does not occur in the matrix") + + + +# square_size = int(input()) # rows and columns +# +# matrix = [] +# +# for row in range(square_size): +# columns = [char for char in input()] +# matrix.append(columns) +# +# search_symbol = input() +# found_symbol = False +# +# for row in range(square_size): +# +# for col in range(square_size): +# if matrix[row][col] == search_symbol: +# print((row, col)) +# found_symbol = True +# break +# if found_symbol: +# break +# +# if not found_symbol: +# print(f"{search_symbol} does not occur in the matrix") \ No newline at end of file diff --git a/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/07. Square with Maximum Sum.py b/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/07. Square with Maximum Sum.py index ae5e16a..8b2ad4d 100644 --- a/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/07. Square with Maximum Sum.py +++ b/Advanced/2.Multidimensional Lists/Multidimensional Lists - Lab/07. Square with Maximum Sum.py @@ -1,74 +1,101 @@ -def read_matrix(is_test=False): - if is_test: - return [ - [7, 1, 3, 3, 2, 1], - [1, 3, 9, 8, 5, 6], - [4, 6, 7, 9, 1, 0], - ] - - else: - - (rows_count, columns_count) = map(int, input().split(', ')) - - matrix = [] - - for row_index in range(rows_count): - row = [int(x) for x in input().split(', ')] - matrix.append(row) - - return matrix - - -def get_sum_of_submatrix(matrix, row_index, column_index, size): - - the_sum = 0 - - for r in range(row_index, row_index + size): - for c in range(column_index, column_index + size): - the_sum += matrix[r][c] - - return the_sum - - -def get_best_submatrix_sum_coordinates(matrix, submatrix_size): - - best_row_index = 0 - best_column_index = 0 - best_sum = get_sum_of_submatrix(matrix, 0, 0, submatrix_size) - - for row_index in range(len(matrix) - submatrix_size + 1): - - for col_index in range(len(matrix[row_index]) - submatrix_size + 1): - - current_sum = get_sum_of_submatrix(matrix, row_index, col_index, submatrix_size) - - if best_sum < current_sum: - best_sum = current_sum - best_row_index = row_index - best_column_index = col_index - - return (best_row_index, best_column_index) - - -def print_result(coordinates, size): - - (row_index, col_index) = coordinates - - for r in range(row_index, row_index + size): - - row = [] - - for c in range(col_index, col_index + size): - - row.append(matrix[r][c]) - - print(' '.join(str(x) for x in row)) - - print(get_sum_of_submatrix(matrix, row_index, col_index, size)) - - -SUBMATRIX_SIZE = 2 - -matrix = read_matrix() -coordinates = get_best_submatrix_sum_coordinates(matrix, SUBMATRIX_SIZE) -print_result(coordinates, SUBMATRIX_SIZE) \ No newline at end of file +import sys + +rows, columns = list(map(int, input().split(", "))) + +matrix = [] +submatrix = [] +sum_submatrix = -sys.maxsize + +for row in range(rows): + cols = list(map(int, input().split(", "))) + matrix.append(cols) + +for row in range(rows): + + for col in range(columns): + if row+1 < rows and col+1 < columns: + square = [matrix[row][col], matrix[row][col+1], matrix[row+1][col], matrix[row+1][col+1]] + if sum(square) > sum_submatrix: + submatrix = [[square[0], square[1]], [square[2], square[3]]] + sum_submatrix = sum(square) + +[print(' '.join([str(col) for col in row])) for row in submatrix] +print(sum_submatrix) + + + + +# def read_matrix(is_test=False): +# if is_test: +# return [ +# [7, 1, 3, 3, 2, 1], +# [1, 3, 9, 8, 5, 6], +# [4, 6, 7, 9, 1, 0], +# ] +# +# else: +# +# (rows_count, columns_count) = map(int, input().split(', ')) +# +# matrix = [] +# +# for row_index in range(rows_count): +# row = [int(x) for x in input().split(', ')] +# matrix.append(row) +# +# return matrix +# +# +# def get_sum_of_submatrix(matrix, row_index, column_index, size): +# +# the_sum = 0 +# +# for r in range(row_index, row_index + size): +# for c in range(column_index, column_index + size): +# the_sum += matrix[r][c] +# +# return the_sum +# +# +# def get_best_submatrix_sum_coordinates(matrix, submatrix_size): +# +# best_row_index = 0 +# best_column_index = 0 +# best_sum = get_sum_of_submatrix(matrix, 0, 0, submatrix_size) +# +# for row_index in range(len(matrix) - submatrix_size + 1): +# +# for col_index in range(len(matrix[row_index]) - submatrix_size + 1): +# +# current_sum = get_sum_of_submatrix(matrix, row_index, col_index, submatrix_size) +# +# if best_sum < current_sum: +# best_sum = current_sum +# best_row_index = row_index +# best_column_index = col_index +# +# return (best_row_index, best_column_index) +# +# +# def print_result(coordinates, size): +# +# (row_index, col_index) = coordinates +# +# for r in range(row_index, row_index + size): +# +# row = [] +# +# for c in range(col_index, col_index + size): +# +# row.append(matrix[r][c]) +# +# print(' '.join(str(x) for x in row)) +# +# print(get_sum_of_submatrix(matrix, row_index, col_index, size)) +# +# +# SUBMATRIX_SIZE = 2 +# +# matrix = read_matrix() +# coordinates = get_best_submatrix_sum_coordinates(matrix, SUBMATRIX_SIZE) +# print_result(coordinates, SUBMATRIX_SIZE) \ No newline at end of file