From 3fb8c3140c99bc7a7a8b05a2da6f45ad104bb408 Mon Sep 17 00:00:00 2001 From: Brandon Kaminski Date: Wed, 13 Aug 2025 09:14:10 -0400 Subject: [PATCH 1/9] first attempt --- codegolf.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 codegolf.py diff --git a/codegolf.py b/codegolf.py new file mode 100644 index 0000000..f3d3e6a --- /dev/null +++ b/codegolf.py @@ -0,0 +1,20 @@ +import sys +def main(): + if len(sys.argv) < 1: + sys.exit(1) + with open(sys.argv[1], "r") as g: + e = [int(x) for x in g.readlines()] + l = 'IVXLCDM ' + for n in e: + f = '' + for i in [3,2,1,0]: + x = l[i*2] + v = int(n/10**i) % 10 + if v % 5 == 4: + f += f'{x}{l[i*2+int(v/5)+1]}' + else: + f += l[i*2+1]*int(v/5) + f += x*(v % 5) + print(f) +if __name__ == "__main__": + main() \ No newline at end of file From ea38dad63de146827202e6d8678a3a2267a0bf0a Mon Sep 17 00:00:00 2001 From: Brandon Kaminski Date: Wed, 13 Aug 2025 11:15:45 -0400 Subject: [PATCH 2/9] second attempt --- codegolf.py | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/codegolf.py b/codegolf.py index f3d3e6a..5fa5c72 100644 --- a/codegolf.py +++ b/codegolf.py @@ -1,20 +1,9 @@ import sys -def main(): - if len(sys.argv) < 1: - sys.exit(1) - with open(sys.argv[1], "r") as g: - e = [int(x) for x in g.readlines()] - l = 'IVXLCDM ' - for n in e: - f = '' - for i in [3,2,1,0]: - x = l[i*2] - v = int(n/10**i) % 10 - if v % 5 == 4: - f += f'{x}{l[i*2+int(v/5)+1]}' - else: - f += l[i*2+1]*int(v/5) - f += x*(v % 5) - print(f) -if __name__ == "__main__": - main() \ No newline at end of file +l = 'IVXLCDM ' +for n in [int(x) for x in open(sys.argv[1], "r").readlines()]: + f = '' + for i in [3,2,1,0]: + x = l[i*2] + v = int(n/10**i) % 10 + f += f'{x}{l[i*2+int(v/5)+1]}' if v % 5 == 4 else l[i*2+1]*int(v/5) + x*(v % 5) + print(f) \ No newline at end of file From 5c25842ba3d296a8368641cb10a6299ece25df26 Mon Sep 17 00:00:00 2001 From: Brandon Kaminski Date: Wed, 13 Aug 2025 11:24:22 -0400 Subject: [PATCH 3/9] remove unnecessary spaces --- codegolf.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/codegolf.py b/codegolf.py index 5fa5c72..a455acd 100644 --- a/codegolf.py +++ b/codegolf.py @@ -1,9 +1,9 @@ import sys l = 'IVXLCDM ' -for n in [int(x) for x in open(sys.argv[1], "r").readlines()]: +for n in [int(x) for x in open(sys.argv[1],"r").readlines()]: f = '' for i in [3,2,1,0]: x = l[i*2] - v = int(n/10**i) % 10 - f += f'{x}{l[i*2+int(v/5)+1]}' if v % 5 == 4 else l[i*2+1]*int(v/5) + x*(v % 5) + v = int(n/10**i)%10 + f += f'{x}{l[i*2+int(v/5)+1]}' if v%5==4 else l[i*2+1]*int(v/5)+x*(v%5) print(f) \ No newline at end of file From 49f745edb93ad3d08626aeb001700f2df3fc7b62 Mon Sep 17 00:00:00 2001 From: Brandon Kaminski Date: Wed, 13 Aug 2025 11:59:12 -0400 Subject: [PATCH 4/9] consolidation --- codegolf.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/codegolf.py b/codegolf.py index a455acd..1a7ce99 100644 --- a/codegolf.py +++ b/codegolf.py @@ -1,9 +1,8 @@ import sys l = 'IVXLCDM ' -for n in [int(x) for x in open(sys.argv[1],"r").readlines()]: - f = '' - for i in [3,2,1,0]: - x = l[i*2] - v = int(n/10**i)%10 - f += f'{x}{l[i*2+int(v/5)+1]}' if v%5==4 else l[i*2+1]*int(v/5)+x*(v%5) +for p in open(sys.argv[1],"r").readlines(): + f='' + for i in [6,4,2,0]: + v=int(int(p)/10**(i/2))%10 + f+=f'{l[i]}{l[i+int(v/5)+1]}' if v%5==4 else l[i+1]*int(v/5)+l[i]*(v%5) print(f) \ No newline at end of file From 40188e0a07a60eea4207a1cea8534515e1973438 Mon Sep 17 00:00:00 2001 From: Brandon Kaminski Date: Wed, 13 Aug 2025 12:03:57 -0400 Subject: [PATCH 5/9] remove format string --- codegolf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codegolf.py b/codegolf.py index 1a7ce99..0be9857 100644 --- a/codegolf.py +++ b/codegolf.py @@ -4,5 +4,5 @@ f='' for i in [6,4,2,0]: v=int(int(p)/10**(i/2))%10 - f+=f'{l[i]}{l[i+int(v/5)+1]}' if v%5==4 else l[i+1]*int(v/5)+l[i]*(v%5) + f+=l[i]+l[i+int(v/5)+1] if v%5==4 else l[i+1]*int(v/5)+l[i]*(v%5) print(f) \ No newline at end of file From 7e99fe9f3aacaa25f92bb0d4ebe5ad4d1eb518e8 Mon Sep 17 00:00:00 2001 From: Brandon Kaminski Date: Wed, 13 Aug 2025 16:07:27 -0400 Subject: [PATCH 6/9] shorten readlines --- codegolf.py | 2 +- input.txt | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/codegolf.py b/codegolf.py index 0be9857..b71bcc0 100644 --- a/codegolf.py +++ b/codegolf.py @@ -1,6 +1,6 @@ import sys l = 'IVXLCDM ' -for p in open(sys.argv[1],"r").readlines(): +for p in open(sys.argv[1],"r"): f='' for i in [6,4,2,0]: v=int(int(p)/10**(i/2))%10 diff --git a/input.txt b/input.txt index 411821e..7afa27d 100644 --- a/input.txt +++ b/input.txt @@ -3,3 +3,12 @@ 243 401 3277 +125 +1587 +2025 +3842 +429 +444 +999 +2320 +9 \ No newline at end of file From 728373691dd4199188e10a98b1482781e2751075 Mon Sep 17 00:00:00 2001 From: Brandon Kaminski Date: Thu, 14 Aug 2025 09:09:04 -0400 Subject: [PATCH 7/9] add floor division --- codegolf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/codegolf.py b/codegolf.py index b71bcc0..caeddf7 100644 --- a/codegolf.py +++ b/codegolf.py @@ -3,6 +3,6 @@ for p in open(sys.argv[1],"r"): f='' for i in [6,4,2,0]: - v=int(int(p)/10**(i/2))%10 - f+=l[i]+l[i+int(v/5)+1] if v%5==4 else l[i+1]*int(v/5)+l[i]*(v%5) + v=int(int(p)//10**(i/2))%10 + f+=l[i]+l[i+v//5+1] if v%5==4 else l[i+1]*(v//5)+l[i]*(v%5) print(f) \ No newline at end of file From 4ce01d143ae80b219ea13b3212d56571fee92798 Mon Sep 17 00:00:00 2001 From: Brandon Kaminski Date: Thu, 14 Aug 2025 10:17:57 -0400 Subject: [PATCH 8/9] remove int call --- codegolf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codegolf.py b/codegolf.py index caeddf7..894f197 100644 --- a/codegolf.py +++ b/codegolf.py @@ -3,6 +3,6 @@ for p in open(sys.argv[1],"r"): f='' for i in [6,4,2,0]: - v=int(int(p)//10**(i/2))%10 + v=int(p)//10**(i//2)%10 f+=l[i]+l[i+v//5+1] if v%5==4 else l[i+1]*(v//5)+l[i]*(v%5) print(f) \ No newline at end of file From 33a343449ef748d073176e0ae8bc833b8041a272 Mon Sep 17 00:00:00 2001 From: Brandon Kaminski Date: Thu, 14 Aug 2025 10:22:30 -0400 Subject: [PATCH 9/9] reorg args --- codegolf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codegolf.py b/codegolf.py index 894f197..ec7b8fa 100644 --- a/codegolf.py +++ b/codegolf.py @@ -4,5 +4,5 @@ f='' for i in [6,4,2,0]: v=int(p)//10**(i//2)%10 - f+=l[i]+l[i+v//5+1] if v%5==4 else l[i+1]*(v//5)+l[i]*(v%5) + f+=l[i]+l[i+v//5+1] if v%5==4 else v//5*l[i+1]+v%5*l[i] print(f) \ No newline at end of file