diff options
| author | Simon Green <mail@simon.green> | 2024-06-02 16:44:05 +1000 |
|---|---|---|
| committer | Simon Green <mail@simon.green> | 2024-06-02 16:44:05 +1000 |
| commit | 9570cd789d0f24fcfba65675b371c5feae0e3dc8 (patch) | |
| tree | 5c3aea0411b8c26b5c9c1e000decba498789a4ed /challenge-271/sgreen/python/ch-1.py | |
| parent | 5ea56aa37a9f0b7098302e2acb76c73907c70bde (diff) | |
| download | perlweeklychallenge-club-9570cd789d0f24fcfba65675b371c5feae0e3dc8.tar.gz perlweeklychallenge-club-9570cd789d0f24fcfba65675b371c5feae0e3dc8.tar.bz2 perlweeklychallenge-club-9570cd789d0f24fcfba65675b371c5feae0e3dc8.zip | |
sgreen solutions to challenge 271
Diffstat (limited to 'challenge-271/sgreen/python/ch-1.py')
| -rwxr-xr-x | challenge-271/sgreen/python/ch-1.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/challenge-271/sgreen/python/ch-1.py b/challenge-271/sgreen/python/ch-1.py new file mode 100755 index 0000000000..21f9744e1a --- /dev/null +++ b/challenge-271/sgreen/python/ch-1.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 + +import json +import sys + + +def maximum_ones(matrix: list) -> int: + """ + Finds the row with the maximum number of ones in a binary matrix. + + Args: + matrix (list): A binary matrix represented as a list of lists. + + Returns: + int: The 1-based index of the row with the maximum number of ones. + """ + + rows = len(matrix) + cols = len(matrix[0]) + + # The row that has the maximum values + max_row = 0 + + # The number of ones in that row + max_count = 0 + + for row in range(rows): + # Check this has the same number of columns as the first row + if len(matrix[row]) != cols: + raise ValueError("Row %s has the wrong number of columns", row) + + if sum(matrix[row]) > max_count: + max_row = row + max_count = sum(matrix[row]) + + # Return the rows as a 1-based index value + return max_row + 1 + + +def main(): + matrix = json.loads(sys.argv[1]) + result = maximum_ones(matrix) + print(result) + + +if __name__ == '__main__': + main() |
