aboutsummaryrefslogtreecommitdiff
path: root/challenge-237/sgreen/python
diff options
context:
space:
mode:
authorSimon Green <mail@simon.green>2023-10-08 23:02:48 +1100
committerSimon Green <mail@simon.green>2023-10-08 23:02:48 +1100
commit79ea77999ba709f30b32931b73e8520202ba78b9 (patch)
tree73193cd386b127ddb8a836a6dddd965e6175acc0 /challenge-237/sgreen/python
parent81695c46183ba0154c05412705e0e85a632d32a0 (diff)
downloadperlweeklychallenge-club-79ea77999ba709f30b32931b73e8520202ba78b9.tar.gz
perlweeklychallenge-club-79ea77999ba709f30b32931b73e8520202ba78b9.tar.bz2
perlweeklychallenge-club-79ea77999ba709f30b32931b73e8520202ba78b9.zip
Simon's solution to challenge 237
Diffstat (limited to 'challenge-237/sgreen/python')
-rwxr-xr-xchallenge-237/sgreen/python/ch-1.py35
-rwxr-xr-xchallenge-237/sgreen/python/ch-2.py29
2 files changed, 64 insertions, 0 deletions
diff --git a/challenge-237/sgreen/python/ch-1.py b/challenge-237/sgreen/python/ch-1.py
new file mode 100755
index 0000000000..3c13419a0b
--- /dev/null
+++ b/challenge-237/sgreen/python/ch-1.py
@@ -0,0 +1,35 @@
+#!/usr/bin/env python3
+
+import sys
+from datetime import date, timedelta
+
+
+def main(year, month, week, dofw):
+ # Get the first of the month
+ dte = date(year, month, 1)
+
+ # Day of the week for the first of the month (1 - Monday, 7 - Sunday)
+ first_weekday = dte.isoweekday()
+
+ # To get the first day of week we take the diff between the two values. If
+ # it is negative, add 7 days
+ add_days = dofw - first_weekday
+ if add_days < 0:
+ add_days += 7
+
+ # Now add the weeks
+ add_days += (week-1) * 7
+
+ new_date = dte + timedelta(days=add_days)
+ if new_date.month != dte.month or new_date.year != dte.year:
+ # This date does not exist
+ print(0)
+ else:
+ # Print the day of month
+ print(new_date.day)
+
+
+if __name__ == '__main__':
+ # Convert input into integers
+ array = [int(n) for n in sys.argv[1:]]
+ main(*array)
diff --git a/challenge-237/sgreen/python/ch-2.py b/challenge-237/sgreen/python/ch-2.py
new file mode 100755
index 0000000000..51dbdc3f26
--- /dev/null
+++ b/challenge-237/sgreen/python/ch-2.py
@@ -0,0 +1,29 @@
+#!/usr/bin/env python3
+
+import sys
+
+
+def main(ints):
+ sorted_ints = sorted(ints, reverse=True)
+ count = 0
+
+ for i in sorted_ints:
+ # If there isn't a solution, exit the loop
+ if min(ints) >= i:
+ break
+
+ # Find the position of the maximum value < i, and delete it
+ m = max(j for j in ints if j < i)
+ idx = ints.index(m)
+ del ints[idx]
+
+ count += 1
+
+ # Print the solution
+ print(count)
+
+
+if __name__ == '__main__':
+ # Convert input into integers
+ array = [int(n) for n in sys.argv[1:]]
+ main(array)