From bcc11a8dc2fa51933b649f20cf0a3325b9193b6d Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Sat, 27 May 2023 18:25:15 +0100 Subject: - Added guest contribution by Robert DiCicco. --- challenge-218/robert-dicicco/julia/ch-2.jl | 127 +++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 challenge-218/robert-dicicco/julia/ch-2.jl diff --git a/challenge-218/robert-dicicco/julia/ch-2.jl b/challenge-218/robert-dicicco/julia/ch-2.jl new file mode 100644 index 0000000000..25003b78cb --- /dev/null +++ b/challenge-218/robert-dicicco/julia/ch-2.jl @@ -0,0 +1,127 @@ +#!/usr/bin/env julia +#--------------------------------------------- +# AUTHOR: Robert DiCicco +# DATE : 2023-05-27 +# Challenge 218 MatrixScore.py ( Julia ) +#--------------------------------------------- +using Printf + +matrix = [ [0,0,1,1], + [1,0,1,0], + [1,1,0,0], ] + +function ToggleRow(r, ov) + testmat = [] + col = 1 + while col < 5 + x = matrix[r][col] + if x == 0 + push!(testmat,1) + else + push!(testmat,0) + end + col += 1 + end + testval = binary_to_decimal(testmat) + if testval > ov + @printf("\nToggled row %d\n",r) + matrix[r] = testmat + ShowMatrix() + end +end + +function ToggleCol(c) + ov = GetColVal(c); + row = 1; + testmat = []; + testval = 0; + while row <= 3 + matrix[row][c] == 0 ? push!(testmat,1) : push!(testmat,0) + row += 1 + end + testval = binary_to_decimal(testmat); + if testval > ov + for x in (1:3) + matrix[x][c] = testmat[x] + end + @printf("Toggled column %d\n",c); + ShowMatrix(); + end +end + + +function binary_to_decimal(binary_array) + decimal = 0 + power = length(binary_array) - 1 + for digit in binary_array + decimal += digit * ( 2 ^ power) + power -= 1 + end + return decimal +end + +function ShowMatrix() + total = 0 + cnt = 1 + while cnt <= 3 + @printf("%s\n",matrix[cnt]) + total += binary_to_decimal(matrix[cnt]) + cnt += 1 + end + @printf("Total = %d\n\n",total) +end + +function GetColVal(c) + testmat = [] + row = 1 + while row <= 3 + push!(testmat,matrix[row][c]) + row += 1 + end + colval = binary_to_decimal(testmat) + return colval +end + +ShowMatrix() +for myrow in (1:3) + bd = binary_to_decimal(matrix[myrow]) + ToggleRow(myrow,bd) +end + + +for mycol in (1:4) + ToggleCol(mycol) +end + +#= +#--------------------------------------------- +SAMPLE OUTPUT +julia .\MatrixScore.jl + +[0, 0, 1, 1] +[1, 0, 1, 0] +[1, 1, 0, 0] +Total = 25 + +Toggled row 1 +[1, 1, 0, 0] +[1, 0, 1, 0] +[1, 1, 0, 0] +Total = 34 + +Toggled column 3 +[1, 1, 1, 0] +[1, 0, 0, 0] +[1, 1, 1, 0] +Total = 36 + +Toggled column 4 +[1, 1, 1, 1] +[1, 0, 0, 1] +[1, 1, 1, 1] +Total = 39 + +#--------------------------------------------- +=# + + -- cgit