aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-060/lubos-kolouch/perl/ch-1.pl33
-rw-r--r--challenge-060/lubos-kolouch/perl/ch-2.pl22
-rw-r--r--challenge-060/lubos-kolouch/python/ch-1.py27
-rw-r--r--challenge-060/lubos-kolouch/python/ch-2.py21
4 files changed, 103 insertions, 0 deletions
diff --git a/challenge-060/lubos-kolouch/perl/ch-1.pl b/challenge-060/lubos-kolouch/perl/ch-1.pl
new file mode 100644
index 0000000000..6a46d53308
--- /dev/null
+++ b/challenge-060/lubos-kolouch/perl/ch-1.pl
@@ -0,0 +1,33 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+
+sub number_to_excel_column {
+ my $num = shift;
+ my $column = '';
+ while ( $num > 0 ) {
+ $num--;
+ $column = chr( ( $num % 26 ) + ord('A') ) . $column;
+ $num = int( $num / 26 );
+ }
+ return $column;
+}
+
+sub excel_column_to_number {
+ my $column = shift;
+ my $num = 0;
+ for my $char ( split //, $column ) {
+ $num = $num * 26 + ( ord($char) - ord('A') + 1 );
+ }
+ return $num;
+}
+
+my $input_number = 28;
+print "Input Number: $input_number\n";
+my $output_column = number_to_excel_column($input_number);
+print "Output: $output_column\n";
+
+my $input_column = "AD";
+print "Input Column Name: $input_column\n";
+my $output_number = excel_column_to_number($input_column);
+print "Output: $output_number\n";
diff --git a/challenge-060/lubos-kolouch/perl/ch-2.pl b/challenge-060/lubos-kolouch/perl/ch-2.pl
new file mode 100644
index 0000000000..8ac17e659d
--- /dev/null
+++ b/challenge-060/lubos-kolouch/perl/ch-2.pl
@@ -0,0 +1,22 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+
+sub generate_numbers {
+ my ( $list, $x, $y, $current ) = @_;
+ if ( $x == 0 ) {
+ return int($current) < $y ? ( int($current) ) : ();
+ }
+ my @result;
+ for my $num (@$list) {
+ push @result, generate_numbers( $list, $x - 1, $y, $current . $num );
+ }
+ return @result;
+}
+
+my @L = ( 0, 1, 2, 5 );
+my $X = 2;
+my $Y = 21;
+
+my @output = generate_numbers( \@L, $X, $Y, "" );
+print join( ", ", @output ), "\n";
diff --git a/challenge-060/lubos-kolouch/python/ch-1.py b/challenge-060/lubos-kolouch/python/ch-1.py
new file mode 100644
index 0000000000..24ddaa66b9
--- /dev/null
+++ b/challenge-060/lubos-kolouch/python/ch-1.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+def number_to_excel_column(num: int) -> str:
+ column = ""
+ while num > 0:
+ num -= 1
+ column = chr((num % 26) + ord("A")) + column
+ num //= 26
+ return column
+
+def excel_column_to_number(column: str) -> int:
+ num = 0
+ for char in column:
+ num = num * 26 + (ord(char) - ord("A") + 1)
+ return num
+
+if __name__ == "__main__":
+ input_number = 28
+ print(f"Input Number: {input_number}")
+ output_column = number_to_excel_column(input_number)
+ print(f"Output: {output_column}")
+
+ input_column = "AD"
+ print(f"Input Column Name: {input_column}")
+ output_number = excel_column_to_number(input_column)
+ print(f"Output: {output_number}")
diff --git a/challenge-060/lubos-kolouch/python/ch-2.py b/challenge-060/lubos-kolouch/python/ch-2.py
new file mode 100644
index 0000000000..a6b872111d
--- /dev/null
+++ b/challenge-060/lubos-kolouch/python/ch-2.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+from typing import List
+
+
+def generate_numbers(numbers: List[int], x: int, y: int, current: str) -> List[int]:
+ if x == 0:
+ return [int(current)] if int(current) < y else []
+ result = []
+ for num in numbers:
+ result.extend(generate_numbers(numbers, x - 1, y, current + str(num)))
+ return result
+
+if __name__ == "__main__":
+ L = [0, 1, 2, 5]
+ X = 2
+ Y = 21
+
+ output = generate_numbers(L, X, Y, "")
+ print(", ".join(map(str, output)))