From 0f6aa5097eb2ddf80ab0d485476c27f7ad5fcc89 Mon Sep 17 00:00:00 2001 From: Beyza Arman Date: Mon, 2 Nov 2026 21:23:47 +0300 Subject: [PATCH] Add Week03 pyramid and sequence assignments --- Week03/pyramid_beyza_arman.py | 9 +++++++++ Week03/sequences_beyza_arman.py | 20 ++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 Week03/pyramid_beyza_arman.py create mode 100644 Week03/sequences_beyza_arman.py diff --git a/Week03/pyramid_beyza_arman.py b/Week03/pyramid_beyza_arman.py new file mode 100644 index 00000000..d74ee7c4 --- /dev/null +++ b/Week03/pyramid_beyza_arman.py @@ -0,0 +1,9 @@ +def calculate_pyramid_height(blocks): + """Return the number of complete layers that can be built.""" + height = 0 + next_layer = 1 + while blocks >= next_layer: + blocks -= next_layer + height += 1 + next_layer += 1 + return height diff --git a/Week03/sequences_beyza_arman.py b/Week03/sequences_beyza_arman.py new file mode 100644 index 00000000..ea0a67a5 --- /dev/null +++ b/Week03/sequences_beyza_arman.py @@ -0,0 +1,20 @@ +def remove_duplicates(items): + """Remove duplicates while preserving the first occurrence order.""" + result = [] + for item in items: + if item not in result: + result.append(item) + return result + + +def list_counts(items): + """Return the frequency of each item.""" + counts = {} + for item in items: + counts[item] = counts.get(item, 0) + 1 + return counts + + +def reverse_dict(mapping): + """Swap keys and values; the last key wins for repeated values.""" + return {value: key for key, value in mapping.items()}