aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaulo Custodio <pauloscustodio@gmail.com>2024-09-04 10:59:07 +0100
committerPaulo Custodio <pauloscustodio@gmail.com>2024-09-04 11:13:02 +0100
commit579c05eadfc83acd0b2f5a65567ec781f8e6f317 (patch)
tree03f03f8ed552c6602a5714b784165db30ffee95b
parent27bf21747ebc688648590e44876fe593858cbb10 (diff)
downloadperlweeklychallenge-club-579c05eadfc83acd0b2f5a65567ec781f8e6f317.tar.gz
perlweeklychallenge-club-579c05eadfc83acd0b2f5a65567ec781f8e6f317.tar.bz2
perlweeklychallenge-club-579c05eadfc83acd0b2f5a65567ec781f8e6f317.zip
Add Python solution to challenge 052
-rw-r--r--challenge-052/paulo-custodio/python/ch-1.py21
-rw-r--r--challenge-052/paulo-custodio/python/ch-2.py48
2 files changed, 69 insertions, 0 deletions
diff --git a/challenge-052/paulo-custodio/python/ch-1.py b/challenge-052/paulo-custodio/python/ch-1.py
new file mode 100644
index 0000000000..7786282a38
--- /dev/null
+++ b/challenge-052/paulo-custodio/python/ch-1.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+
+# Challenge 052
+#
+# TASK #1
+# Stepping Numbers
+# Write a script to accept two numbers between 100 and 999. It should then print
+# all Stepping Numbers between them.
+#
+# A number is called a stepping number if the adjacent digits have a difference
+# of 1. For example, 456 is a stepping number but 129 is not.
+
+import sys
+
+STEPPING_NUMS = [123, 234, 345, 456, 567, 678, 789]
+
+start = int(sys.argv[1])
+end = int(sys.argv[2])
+for n in STEPPING_NUMS:
+ if n >= start and n <= end:
+ print(n)
diff --git a/challenge-052/paulo-custodio/python/ch-2.py b/challenge-052/paulo-custodio/python/ch-2.py
new file mode 100644
index 0000000000..1bb6b70bed
--- /dev/null
+++ b/challenge-052/paulo-custodio/python/ch-2.py
@@ -0,0 +1,48 @@
+#!/usr/bin/env python3
+
+# Challenge 052
+#
+# TASK #2
+# Lucky Winner
+# Suppose there are following coins arranged on a table in a line in random
+# order.
+#
+# Pound1, 50p, 1p, 10p, 5p, 20p, Pound2, 2p
+#
+# Suppose you are playing against the computer. Player can only pick one coin
+# at a time from either ends. Find out the lucky winner, who has the larger
+# amounts in total?
+
+from random import shuffle
+
+coins = [100, 50, 1, 10, 5, 20, 200, 2]
+shuffle(coins)
+
+human = 0
+computer = 0
+
+while len(coins) > 0:
+ # human
+ draw = ""
+ while draw != "b" and draw != "e":
+ draw = input("Coins: "+" ".join([str(x) for x in coins])+". draw (b/e)? ")
+ if draw == "b":
+ human += coins[0]
+ coins = coins[1:]
+ else:
+ human += coins[-1]
+ coins = coins[:-1]
+
+ # computer
+ if len(coins) > 0:
+ if coins[0] >= coins[-1]:
+ computer += coins[0]
+ coins = coins[1:]
+ else:
+ computer += coins[-1]
+ coins = coins[:-1]
+
+if human > computer:
+ print(f"You WIN ({human}/{computer})")
+else:
+ print(f"You LOOSE ({human}/{computer})")