From b46ff3291e1a981bd5d6c7266ffb7406758afabc Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 12:01:50 +0530 Subject: [PATCH 01/35] Solution --- December 01/Dec_1.ipynb | 52 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 December 01/Dec_1.ipynb diff --git a/December 01/Dec_1.ipynb b/December 01/Dec_1.ipynb new file mode 100644 index 0000000..d01a45b --- /dev/null +++ b/December 01/Dec_1.ipynb @@ -0,0 +1,52 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2.0\n", + "1.0\n" + ] + } + ], + "source": [ + "def findsum(n,arr):\n", + " a_sum=sum(arr)\n", + " e_sum=(n*(n+1)/2)\n", + " v=e_sum-a_sum\n", + " print(v)\n", + "\n", + "\n", + "findsum(5,[1,3,4,5])\n", + "findsum(3,[2,3])" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 4f95bca0a694efacf6db1b4b08f1044e1be00367 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 12:13:37 +0530 Subject: [PATCH 02/35] Solution --- December 02/Dec_2.ipynb | 53 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 December 02/Dec_2.ipynb diff --git a/December 02/Dec_2.ipynb b/December 02/Dec_2.ipynb new file mode 100644 index 0000000..6a5e215 --- /dev/null +++ b/December 02/Dec_2.ipynb @@ -0,0 +1,53 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[10, 5, 6, 2, 20, 3, 100, 80]\n" + ] + } + ], + "source": [ + "def wave(arr):\n", + " for i in range(len(arr)-1):\n", + " if i%2==0:\n", + " if arr[i]arr[i+1]:\n", + " arr[i],arr[i+1]=arr[i+1],arr[i]\n", + " print(arr)\n", + "wave([10, 5, 6, 3, 2, 20, 100, 80])" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 75c54688f32c336df5157bb7c632148e406a49c4 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 12:22:57 +0530 Subject: [PATCH 03/35] Solution --- December 03/Dec_3.ipynb | 60 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 December 03/Dec_3.ipynb diff --git a/December 03/Dec_3.ipynb b/December 03/Dec_3.ipynb new file mode 100644 index 0000000..f94157c --- /dev/null +++ b/December 03/Dec_3.ipynb @@ -0,0 +1,60 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "RBRBR\n", + "Not possible\n" + ] + } + ], + "source": [ + "def arrange_squares(R, B):\n", + " if abs(R - B) > 1:\n", + " return \"Not possible\"\n", + "\n", + " if R >= B:\n", + " result = \"RB\" * B + \"R\" * (R - B)\n", + " else:\n", + " result = \"BR\" * R + \"B\" * (B - R)\n", + "\n", + " return result\n", + "\n", + "R = 3\n", + "B = 2\n", + "output = arrange_squares(3, 2)\n", + "print(output)\n", + "print(arrange_squares(5, 3))\n", + "\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From f70bd42fb89d2c4e89392656a6d9e058d949484c Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 12:30:29 +0530 Subject: [PATCH 04/35] Solution --- December 04/Dec_4.ipynb | 53 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 December 04/Dec_4.ipynb diff --git a/December 04/Dec_4.ipynb b/December 04/Dec_4.ipynb new file mode 100644 index 0000000..e39b4e8 --- /dev/null +++ b/December 04/Dec_4.ipynb @@ -0,0 +1,53 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "55\n", + "144\n" + ] + } + ], + "source": [ + "def pgt(n):\n", + " if n==0:\n", + " return 0\n", + " elif n==1:\n", + " return 1\n", + " else:\n", + " return pgt(n-1)+pgt(n-2)\n", + "\n", + "print(pgt(10))\n", + "print(pgt(12))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 15ae61cba8a5a1440bb99cd8b7b57c33c5ef4ac2 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 12:35:02 +0530 Subject: [PATCH 05/35] Solution --- December 05/Dec_5.ipynb | 51 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 December 05/Dec_5.ipynb diff --git a/December 05/Dec_5.ipynb b/December 05/Dec_5.ipynb new file mode 100644 index 0000000..ba04d18 --- /dev/null +++ b/December 05/Dec_5.ipynb @@ -0,0 +1,51 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n", + "4\n" + ] + } + ], + "source": [ + "def josephus(n, k):\n", + " if n == 1:\n", + " return 1\n", + " else:\n", + " return (josephus(n - 1, k) + k - 1) % n + 1\n", + "\n", + "print(josephus(3,2)) \n", + "print(josephus(5,3))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 66e3d5c708b5b8b05ae11d1ebeeb8da76d8c9163 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 12:39:31 +0530 Subject: [PATCH 06/35] Solution --- December 06/Dec_6.ipynb | 55 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 December 06/Dec_6.ipynb diff --git a/December 06/Dec_6.ipynb b/December 06/Dec_6.ipynb new file mode 100644 index 0000000..55ec988 --- /dev/null +++ b/December 06/Dec_6.ipynb @@ -0,0 +1,55 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Unique pairs are: [(2, 4), (1, 5)]\n" + ] + } + ], + "source": [ + "def find_pairs(n, t):\n", + " unique_pairs = []\n", + " for i in range(len(n)):\n", + " for j in range(i + 1, len(n)):\n", + " if n[i] + n[j] == t:\n", + " pair = (n[i], n[j])\n", + " unique_pairs.append(pair)\n", + " return unique_pairs\n", + "\n", + "n = [2, 4, 3, 7, 1, 5]\n", + "t = 6\n", + "result = find_pairs(n, t)\n", + "print(\"Unique pairs are:\", result)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From c318edbb2d5c528181bec76e7dc3aa031a3d7fc7 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 12:44:50 +0530 Subject: [PATCH 07/35] Solution --- December 07/Dec_7.ipynb | 61 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 December 07/Dec_7.ipynb diff --git a/December 07/Dec_7.ipynb b/December 07/Dec_7.ipynb new file mode 100644 index 0000000..889ec20 --- /dev/null +++ b/December 07/Dec_7.ipynb @@ -0,0 +1,61 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1]\n", + "[1, 1]\n", + "[1, 2, 1]\n", + "[1, 3, 3, 1]\n", + "[1, 4, 6, 4, 1]\n" + ] + } + ], + "source": [ + "def generate_magical_tower(N):\n", + " tower = [[1]]\n", + " for i in range(1, N):\n", + " floor = [1]\n", + " for j in range(1, i):\n", + " floor.append(tower[i-1][j-1] + tower[i-1][j])\n", + " floor.append(1)\n", + " tower.append(floor)\n", + " return tower\n", + "\n", + "N = 5\n", + "magical_tower = generate_magical_tower(N)\n", + "\n", + "for floor in magical_tower:\n", + " print(floor)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 7a0a8924ca45deef90d32fd2c72df63f23985815 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 12:50:32 +0530 Subject: [PATCH 08/35] Solution --- December 08/Dec_8.ipynb | 50 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 December 08/Dec_8.ipynb diff --git a/December 08/Dec_8.ipynb b/December 08/Dec_8.ipynb new file mode 100644 index 0000000..f08053a --- /dev/null +++ b/December 08/Dec_8.ipynb @@ -0,0 +1,50 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "285\n" + ] + } + ], + "source": [ + "def squaresum(n):\n", + " sm = 0\n", + " for i in range(1, n+1):\n", + " sm = sm + (i * i)\n", + " return sm\n", + "\n", + "n = 9\n", + "print(squaresum(n))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From d46df79625a340cdf987119e732d4b6d807e5df0 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 12:53:52 +0530 Subject: [PATCH 09/35] Solution --- December 09/Dec_9.ipynb | 45 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 December 09/Dec_9.ipynb diff --git a/December 09/Dec_9.ipynb b/December 09/Dec_9.ipynb new file mode 100644 index 0000000..3473e08 --- /dev/null +++ b/December 09/Dec_9.ipynb @@ -0,0 +1,45 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4\n" + ] + } + ], + "source": [ + "returns = [2, 1, 5, 1, 0, 3, 1, 4, 1]\n", + "result = returns.count(1)\n", + "print(result)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From f5fc93e56f063ad97091406a80cb7b6fa637f5d7 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 12:57:56 +0530 Subject: [PATCH 10/35] Solution --- December 10/Dec_10.ipynb | 86 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 December 10/Dec_10.ipynb diff --git a/December 10/Dec_10.ipynb b/December 10/Dec_10.ipynb new file mode 100644 index 0000000..2039352 --- /dev/null +++ b/December 10/Dec_10.ipynb @@ -0,0 +1,86 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[['A'], ['B', 'C'], ['D'], ['E']]\n" + ] + } + ], + "source": [ + "from collections import defaultdict, deque\n", + "\n", + "def find_task_order(tasks):\n", + " graph = defaultdict(list)\n", + " in_degree = defaultdict(int)\n", + "\n", + " for task_id, dependencies in tasks:\n", + " for dep in dependencies:\n", + " graph[dep].append(task_id)\n", + " in_degree[task_id] += len(dependencies)\n", + "\n", + " queue = deque([task for task, degree in in_degree.items() if degree == 0])\n", + " execution_order = []\n", + " processed = set()\n", + "\n", + " while queue:\n", + " concurrent_tasks = []\n", + " for _ in range(len(queue)):\n", + " task = queue.popleft()\n", + " if task in processed:\n", + " continue\n", + " concurrent_tasks.append(task)\n", + " processed.add(task)\n", + " for neighbor in graph[task]:\n", + " in_degree[neighbor] -= 1\n", + " if in_degree[neighbor] == 0:\n", + " queue.append(neighbor)\n", + " execution_order.append(concurrent_tasks)\n", + "\n", + " if len(processed) < len(in_degree):\n", + " return \"Error: Cyclic dependency detected\"\n", + "\n", + " return execution_order\n", + "\n", + "tasks = [\n", + " (\"A\", []),\n", + " (\"B\", [\"A\"]),\n", + " (\"C\", [\"A\"]),\n", + " (\"D\", [\"B\", \"C\"]),\n", + " (\"E\", [\"D\"]),\n", + "]\n", + "\n", + "result = find_task_order(tasks)\n", + "print(result)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 5d066de12bd3ff422680fbab0d3511c8815cf1a8 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 14:12:06 +0530 Subject: [PATCH 11/35] Solution --- December 11/Dec_11.ipynb | 58 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 December 11/Dec_11.ipynb diff --git a/December 11/Dec_11.ipynb b/December 11/Dec_11.ipynb new file mode 100644 index 0000000..26d6460 --- /dev/null +++ b/December 11/Dec_11.ipynb @@ -0,0 +1,58 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n", + "False\n" + ] + } + ], + "source": [ + "def judgeCircle(moves: str) -> bool:\n", + " x = 0\n", + " y = 0\n", + " for move in moves:\n", + " if move == 'R':\n", + " x += 1\n", + " elif move == 'L':\n", + " x -= 1\n", + " elif move == 'U':\n", + " y += 1\n", + " elif move == 'D':\n", + " y -= 1\n", + " return x == 0 and y == 0\n", + "print(judgeCircle(\"UD\"))\n", + "print(judgeCircle(\"LL\"))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 00da52b346f1910525a6b3892b855b2657b7e1d6 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 14:15:57 +0530 Subject: [PATCH 12/35] Solution --- December 12/Dec_12.ipynb | 81 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 December 12/Dec_12.ipynb diff --git a/December 12/Dec_12.ipynb b/December 12/Dec_12.ipynb new file mode 100644 index 0000000..6c29513 --- /dev/null +++ b/December 12/Dec_12.ipynb @@ -0,0 +1,81 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "John purchased 2 tickets\n", + "Charlie purchased 1 tickets\n", + "Alice purchased 2 tickets\n", + "Bob was not served\n" + ] + } + ], + "source": [ + "from collections import deque\n", + "\n", + "def process_ticket_requests(N, requests):\n", + " vip_queue = deque()\n", + " regular_queue = deque()\n", + " result = []\n", + " for request in requests:\n", + " parts = request.split()\n", + " name = parts[0]\n", + " tickets = int(parts[1])\n", + " if len(parts) == 3 and parts[2] == \"VIP\":\n", + " vip_queue.append((name, tickets))\n", + " else:\n", + " regular_queue.append((name, tickets))\n", + " while vip_queue and N > 0:\n", + " name, tickets = vip_queue.popleft()\n", + " tickets_to_allocate = min(tickets, N)\n", + " N -= tickets_to_allocate\n", + " result.append(f\"{name} purchased {tickets_to_allocate} tickets\")\n", + " while regular_queue and N > 0:\n", + " name, tickets = regular_queue.popleft()\n", + " tickets_to_allocate = min(tickets, N)\n", + " N -= tickets_to_allocate\n", + " if tickets_to_allocate > 0:\n", + " result.append(f\"{name} purchased {tickets_to_allocate} tickets\")\n", + " else:\n", + " result.append(f\"{name} was not served\")\n", + " while regular_queue:\n", + " name, _ = regular_queue.popleft()\n", + " result.append(f\"{name} was not served\")\n", + " return result\n", + "N = 5\n", + "requests = [\"John 2 VIP\", \"Alice 3\", \"Bob 2\", \"Charlie 1 VIP\"]\n", + "output = process_ticket_requests(N, requests)\n", + "for line in output:\n", + " print(line)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From f30646f453c87ef8674aaaf4eb598fa4ff82bead Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 14:32:52 +0530 Subject: [PATCH 13/35] Solution --- December 13/Dec_13.ipynb | 56 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 December 13/Dec_13.ipynb diff --git a/December 13/Dec_13.ipynb b/December 13/Dec_13.ipynb new file mode 100644 index 0000000..dce5e75 --- /dev/null +++ b/December 13/Dec_13.ipynb @@ -0,0 +1,56 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sorted array: [3, 1, 2, 4, 5]\n", + "Total swap cost: 3\n" + ] + } + ], + "source": [ + "def swap(arr):\n", + " cost = 0\n", + " for i in range(len(arr)-1):\n", + " if arr[i] > arr[i+1]:\n", + " temp = arr[i]\n", + " arr[i] = arr[i+1]\n", + " arr[i+1] = temp\n", + " cost += 1 \n", + " return cost\n", + "arr = [4, 3, 1, 2, 5]\n", + "cost = swap(arr)\n", + "print(\"Sorted array:\", arr)\n", + "print(\"Total swap cost:\", cost)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 689f26c92d53930e0e8ff9ca2788ad93e3cfbaa6 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 14:44:51 +0530 Subject: [PATCH 14/35] Solution --- December 14/Dec_14.ipynb | 60 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 December 14/Dec_14.ipynb diff --git a/December 14/Dec_14.ipynb b/December 14/Dec_14.ipynb new file mode 100644 index 0000000..d66dcd9 --- /dev/null +++ b/December 14/Dec_14.ipynb @@ -0,0 +1,60 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Invalid input\n" + ] + } + ], + "source": [ + "def can_distribute(N, K, D, A):\n", + " subject_counts = Counter(A)\n", + " distinct_subjects = len(subject_counts)\n", + " if distinct_subjects < 2 * K:\n", + " return \"NO\" \n", + " team_size_lower_bound = (N - D) // 2\n", + " team_size_upper_bound = (N + D) // 2\n", + " if team_size_lower_bound <= N // 2 <= team_size_upper_bound:\n", + " return \"YES\"\n", + " return \"NO\"\n", + "try:\n", + " T = int(input().strip()) \n", + " for _ in range(T):\n", + " N, K, D = map(int, input().split())\n", + " A = list(map(int, input().split()))\n", + " print(can_distribute(N, K, D, A))\n", + "except ValueError:\n", + " print(\"Invalid input\")\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 6ec409f2ba3b1c0c6f7317b8cc8418dc2527726c Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 14:47:45 +0530 Subject: [PATCH 15/35] Solution --- December 15/Dec_15.ipynb | 58 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 December 15/Dec_15.ipynb diff --git a/December 15/Dec_15.ipynb b/December 15/Dec_15.ipynb new file mode 100644 index 0000000..7b6ae59 --- /dev/null +++ b/December 15/Dec_15.ipynb @@ -0,0 +1,58 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n" + ] + } + ], + "source": [ + "def minTrips(houses, W):\n", + " trips = 0 \n", + " current_load = 0 \n", + "\n", + " for gifts in houses:\n", + " if current_load + gifts > W:\n", + " trips += 1 \n", + " current_load = gifts \n", + " else:\n", + " current_load += gifts\n", + " if current_load > 0:\n", + " trips += 1\n", + " return trips\n", + "houses = [2, 3, 5, 2, 1]\n", + "W = 6\n", + "print(minTrips(houses, W))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 3e09dc190262c4d3146430037691c759f48fb83d Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 14:53:30 +0530 Subject: [PATCH 16/35] Solution --- December 16/Dec_16.ipynb | 69 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 December 16/Dec_16.ipynb diff --git a/December 16/Dec_16.ipynb b/December 16/Dec_16.ipynb new file mode 100644 index 0000000..bc6adff --- /dev/null +++ b/December 16/Dec_16.ipynb @@ -0,0 +1,69 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Minimum platforms required: 2\n" + ] + } + ], + "source": [ + "def minPlatforms(arrivals, departures):\n", + " arrivals.sort()\n", + " departures.sort()\n", + "\n", + " n = len(arrivals)\n", + " i = 0\n", + " j = 0\n", + " platforms_needed = 0\n", + " max_platforms = 0\n", + "\n", + " while i < n and j < n:\n", + " if arrivals[i] <= departures[j]:\n", + " platforms_needed += 1\n", + " i += 1\n", + " else:\n", + " platforms_needed -= 1\n", + " j += 1\n", + " \n", + " max_platforms = max(max_platforms, platforms_needed)\n", + " \n", + " return max_platforms\n", + "\n", + "arrivals = [1030, 1015, 1045, 1100, 1500, 1530]\n", + "departures = [1040, 1105, 1050, 1130, 1515, 1600]\n", + "\n", + "\n", + "print(\"Minimum platforms required:\", minPlatforms(arrivals, departures))\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From d9c3455695687a310f805bc2ae3ebcb5730c2ed7 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 14:58:21 +0530 Subject: [PATCH 17/35] Solution --- December 17/Dec_17.ipynb | 82 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 December 17/Dec_17.ipynb diff --git a/December 17/Dec_17.ipynb b/December 17/Dec_17.ipynb new file mode 100644 index 0000000..2ea9465 --- /dev/null +++ b/December 17/Dec_17.ipynb @@ -0,0 +1,82 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Stored alerts:\n", + "{'id': 'A123', 'timestamp': '00:00:10', 'threat_level': 3}\n", + "{'id': 'B456', 'timestamp': '00:05:05', 'threat_level': 2}\n" + ] + } + ], + "source": [ + "from collections import defaultdict\n", + "import time\n", + "class AlertManagementSystem:\n", + " def __init__(self):\n", + " self.alerts = {}\n", + " def process_alert(self, alert):\n", + " current_time = int(alert[\"timestamp\"].replace(\":\", \"\").replace(\".\", \"\"))\n", + " self.evict_old_alerts(current_time)\n", + " if alert[\"id\"] in self.alerts:\n", + " last_alert = self.alerts[alert[\"id\"]]\n", + " last_timestamp = int(last_alert[\"timestamp\"].replace(\":\", \"\").replace(\".\", \"\"))\n", + " if current_time - last_timestamp <= 30:\n", + " return\n", + " self.alerts[alert[\"id\"]] = alert \n", + " def evict_old_alerts(self, current_time):\n", + " to_delete = []\n", + " for alert_id, alert in self.alerts.items():\n", + " alert_timestamp = int(alert[\"timestamp\"].replace(\":\", \"\").replace(\".\", \"\"))\n", + " if current_time - alert_timestamp > 500:\n", + " to_delete.append(alert_id) \n", + " for alert_id in to_delete:\n", + " del self.alerts[alert_id]\n", + " def get_stored_alerts(self):\n", + " return list(self.alerts.values())\n", + "alerts = [\n", + " {\"id\": \"A123\", \"timestamp\": \"00:00:10\", \"threat_level\": 3},\n", + " {\"id\": \"A123\", \"timestamp\": \"00:00:15\", \"threat_level\": 3},\n", + " {\"id\": \"B456\", \"timestamp\": \"00:00:20\", \"threat_level\": 2},\n", + " {\"id\": \"A123\", \"timestamp\": \"00:00:30\", \"threat_level\": 5},\n", + " {\"id\": \"B456\", \"timestamp\": \"00:05:05\", \"threat_level\": 2},\n", + "]\n", + "system = AlertManagementSystem()\n", + "for alert in alerts:\n", + " system.process_alert(alert)\n", + "stored_alerts = system.get_stored_alerts()\n", + "print(\"Stored alerts:\")\n", + "for alert in stored_alerts:\n", + " print(alert)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 14a7d73d3e4eff5f0ae239b60747d6346effa263 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 15:03:18 +0530 Subject: [PATCH 18/35] Solution --- December 18/Dec_18.ipynb | 71 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 December 18/Dec_18.ipynb diff --git a/December 18/Dec_18.ipynb b/December 18/Dec_18.ipynb new file mode 100644 index 0000000..0ba7274 --- /dev/null +++ b/December 18/Dec_18.ipynb @@ -0,0 +1,71 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Maximum Profit: $20650\n" + ] + } + ], + "source": [ + "def gem_price(gem):\n", + " prices = {'D': 500, 'R': 250, 'E': 100}\n", + " return prices.get(gem, 0)\n", + "\n", + "def longest_palindromic_subsequence(chain):\n", + " n = len(chain)\n", + " dp = [[0] * n for _ in range(n)]\n", + " for i in range(n):\n", + " dp[i][i] = 1\n", + " for length in range(2, n+1):\n", + " for i in range(n-length+1):\n", + " j = i + length - 1\n", + " if chain[i] == chain[j]:\n", + " dp[i][j] = dp[i+1][j-1] + 2 if length > 2 else 2\n", + " else:\n", + " dp[i][j] = max(dp[i+1][j], dp[i][j-1])\n", + " return dp[0][n-1]\n", + "\n", + "def calculate_max_profit(chain):\n", + " length_of_palindrome = longest_palindromic_subsequence(chain)\n", + " total_value = 0\n", + " for gem in chain:\n", + " total_value += gem_price(gem)\n", + " return total_value * length_of_palindrome\n", + "\n", + "chain = \"RDEREDRRRD\"\n", + "max_profit = calculate_max_profit(chain)\n", + "\n", + "print(f\"Maximum Profit: ${max_profit}\")\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 774189f11588063d2faf1becb7b493e8c4c24cf6 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 15:07:29 +0530 Subject: [PATCH 19/35] Solution --- December 19/Dec_19.ipynb | 64 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 December 19/Dec_19.ipynb diff --git a/December 19/Dec_19.ipynb b/December 19/Dec_19.ipynb new file mode 100644 index 0000000..f2da09e --- /dev/null +++ b/December 19/Dec_19.ipynb @@ -0,0 +1,64 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Move disk 1 from rod A to rod B\n", + "Move disk 2 from rod A to rod C\n", + "Move disk 1 from rod B to rod C\n", + "Move disk 3 from rod A to rod B\n", + "Move disk 1 from rod C to rod A\n", + "Move disk 2 from rod C to rod B\n", + "Move disk 1 from rod A to rod B\n", + "Move disk 4 from rod A to rod C\n", + "Move disk 1 from rod B to rod C\n", + "Move disk 2 from rod B to rod A\n", + "Move disk 1 from rod C to rod A\n", + "Move disk 3 from rod B to rod C\n", + "Move disk 1 from rod A to rod B\n", + "Move disk 2 from rod A to rod C\n", + "Move disk 1 from rod B to rod C\n" + ] + } + ], + "source": [ + "def TowerOfHanoi(n, from_rod, to_rod, aux_rod):\n", + " if n == 0:\n", + " return\n", + " TowerOfHanoi(n-1, from_rod, aux_rod, to_rod)\n", + " print(\"Move disk\", n, \"from rod\", from_rod, \"to rod\", to_rod)\n", + " TowerOfHanoi(n-1, aux_rod, to_rod, from_rod)\n", + "N = 4\n", + "TowerOfHanoi(N, 'A', 'C', 'B')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From df50366cd8e677db87ed1c6dad86578858964fb9 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 15:09:50 +0530 Subject: [PATCH 20/35] Solution --- December 20/Dec_20.ipynb | 53 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 December 20/Dec_20.ipynb diff --git a/December 20/Dec_20.ipynb b/December 20/Dec_20.ipynb new file mode 100644 index 0000000..c7fc519 --- /dev/null +++ b/December 20/Dec_20.ipynb @@ -0,0 +1,53 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7\n" + ] + } + ], + "source": [ + "def countWays(steps, distance):\n", + " dp = [0] * (distance + 1)\n", + " dp[0] = 1 \n", + " for i in range(1, distance + 1):\n", + " for step in steps:\n", + " if i >= step:\n", + " dp[i] += dp[i - step]\n", + " return dp[distance]\n", + "steps = [1, 2, 3]\n", + "distance = 4\n", + "print(countWays(steps, distance))\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From f962c276f62645ee9fecb0e94af885365d49608f Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 18:29:59 +0530 Subject: [PATCH 21/35] Solution --- December 21/Dec_21.ipynb | 137 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 December 21/Dec_21.ipynb diff --git a/December 21/Dec_21.ipynb b/December 21/Dec_21.ipynb new file mode 100644 index 0000000..32d861a --- /dev/null +++ b/December 21/Dec_21.ipynb @@ -0,0 +1,137 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "class ListNode:\n", + " def __init__(self, val=0, next=None):\n", + " self.val = val\n", + " self.next = next\n", + "\n", + "def create_linked_list(values):\n", + " if not values:\n", + " return None\n", + " head = ListNode(values[0])\n", + " current = head\n", + " for value in values[1:]:\n", + " current.next = ListNode(value)\n", + " current = current.next\n", + " return head\n", + "\n", + "def find_intersection(head1, head2):\n", + " def get_length(head):\n", + " length = 0\n", + " while head:\n", + " length += 1\n", + " head = head.next\n", + " return length\n", + "\n", + " len1, len2 = get_length(head1), get_length(head2)\n", + " cur1, cur2 = head1, head2\n", + "\n", + " if len1 > len2:\n", + " for _ in range(len1 - len2):\n", + " cur1 = cur1.next\n", + " elif len2 > len1:\n", + " for _ in range(len2 - len1):\n", + " cur2 = cur2.next\n", + "\n", + " while cur1 and cur2:\n", + " if cur1 == cur2:\n", + " return cur1.val\n", + " cur1 = cur1.next\n", + " cur2 = cur2.next\n", + "\n", + " return \"No intersection found\"" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Enter the number of nodes in the first linked list N: 4\n", + "Enter N space-separated node values for the first linked list: 10 20 30 40\n", + "Enter the number of nodes in the second linked list M: 3\n", + "Enter M space-separated node values for the second linked list: 50 60 70 80\n", + "Enter the position (1-indexed) in the first linked list where the second linked list intersects (0 if no intersection): 0\n" + ] + } + ], + "source": [ + "\n", + "# Input Handling\n", + "n = int(input(\"Enter the number of nodes in the first linked list N: \"))\n", + "list1 = list(map(int, input(\"Enter N space-separated node values for the first linked list: \").split()))\n", + "m = int(input(\"Enter the number of nodes in the second linked list M: \"))\n", + "list2 = list(map(int, input(\"Enter M space-separated node values for the second linked list: \").split()))\n", + "intersect_pos = int(input(\"Enter the position (1-indexed) in the first linked list where the second linked list intersects (0 if no intersection): \"))\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "No intersection found\n" + ] + } + ], + "source": [ + "head1 = create_linked_list(list1)\n", + "head2 = create_linked_list(list2)\n", + "if intersect_pos > 0:\n", + " cur1 = head1\n", + " for _ in range(intersect_pos - 1):\n", + " cur1 = cur1.next\n", + " cur2 = head2\n", + " while cur2.next:\n", + " cur2 = cur2.next\n", + " cur2.next = cur1\n", + "\n", + "result = find_intersection(head1, head2)\n", + "print(result)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From 582b9f72fc86ea43b41a097effbe1af3d01a645a Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 18:34:03 +0530 Subject: [PATCH 22/35] Solution --- December 22/Dec_22.ipynb | 84 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 December 22/Dec_22.ipynb diff --git a/December 22/Dec_22.ipynb b/December 22/Dec_22.ipynb new file mode 100644 index 0000000..da151e5 --- /dev/null +++ b/December 22/Dec_22.ipynb @@ -0,0 +1,84 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n", + "1\n" + ] + } + ], + "source": [ + "from math import sqrt\n", + "\n", + "def max_buildings_affected(buildings):\n", + " def can_affect(building1, building2):\n", + " x1, y1, r1 = building1\n", + " x2, y2, _ = building2\n", + " return sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2) <= r1\n", + "\n", + " # Build the graph\n", + " n = len(buildings)\n", + " graph = {i: [] for i in range(n)}\n", + " for i in range(n):\n", + " for j in range(n):\n", + " if i != j and can_affect(buildings[i], buildings[j]):\n", + " graph[i].append(j)\n", + "\n", + " # BFS to count affected buildings\n", + " def bfs(start):\n", + " visited = set()\n", + " queue = [start]\n", + " while queue:\n", + " node = queue.pop(0)\n", + " if node not in visited:\n", + " visited.add(node)\n", + " queue.extend(graph[node])\n", + " return len(visited)\n", + "\n", + " # Find the maximum number of affected buildings\n", + " max_affected = 0\n", + " for i in range(n):\n", + " max_affected = max(max_affected, bfs(i))\n", + " \n", + " return max_affected\n", + "\n", + "# Example Input\n", + "buildings = [[2, 1, 3], [6, 1, 4]]\n", + "b=[[1,1,5],[10,10,5]]\n", + "\n", + "# Output\n", + "print(max_buildings_affected(buildings))\n", + "print(max_buildings_affected(b))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 8e94d2afa20b33ca8709595b1ac557c79b0cadb7 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 18:36:38 +0530 Subject: [PATCH 23/35] Delete December 22/Dec_22.ipynb --- December 22/Dec_22.ipynb | 84 ---------------------------------------- 1 file changed, 84 deletions(-) delete mode 100644 December 22/Dec_22.ipynb diff --git a/December 22/Dec_22.ipynb b/December 22/Dec_22.ipynb deleted file mode 100644 index da151e5..0000000 --- a/December 22/Dec_22.ipynb +++ /dev/null @@ -1,84 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2\n", - "1\n" - ] - } - ], - "source": [ - "from math import sqrt\n", - "\n", - "def max_buildings_affected(buildings):\n", - " def can_affect(building1, building2):\n", - " x1, y1, r1 = building1\n", - " x2, y2, _ = building2\n", - " return sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2) <= r1\n", - "\n", - " # Build the graph\n", - " n = len(buildings)\n", - " graph = {i: [] for i in range(n)}\n", - " for i in range(n):\n", - " for j in range(n):\n", - " if i != j and can_affect(buildings[i], buildings[j]):\n", - " graph[i].append(j)\n", - "\n", - " # BFS to count affected buildings\n", - " def bfs(start):\n", - " visited = set()\n", - " queue = [start]\n", - " while queue:\n", - " node = queue.pop(0)\n", - " if node not in visited:\n", - " visited.add(node)\n", - " queue.extend(graph[node])\n", - " return len(visited)\n", - "\n", - " # Find the maximum number of affected buildings\n", - " max_affected = 0\n", - " for i in range(n):\n", - " max_affected = max(max_affected, bfs(i))\n", - " \n", - " return max_affected\n", - "\n", - "# Example Input\n", - "buildings = [[2, 1, 3], [6, 1, 4]]\n", - "b=[[1,1,5],[10,10,5]]\n", - "\n", - "# Output\n", - "print(max_buildings_affected(buildings))\n", - "print(max_buildings_affected(b))" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.6" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} From c2b1f496e59c4b90f544e66a3ff36a3ddbdd3879 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 18:36:57 +0530 Subject: [PATCH 24/35] Solution --- December 22/Dec_22.ipynb | 75 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 December 22/Dec_22.ipynb diff --git a/December 22/Dec_22.ipynb b/December 22/Dec_22.ipynb new file mode 100644 index 0000000..8052787 --- /dev/null +++ b/December 22/Dec_22.ipynb @@ -0,0 +1,75 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n", + "1\n" + ] + } + ], + "source": [ + "from math import sqrt\n", + "def max_buildings_affected(buildings):\n", + " def can_affect(building1, building2):\n", + " x1, y1, r1 = building1\n", + " x2, y2, _ = building2\n", + " return sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2) <= r1\n", + " n = len(buildings)\n", + " graph = {i: [] for i in range(n)}\n", + " for i in range(n):\n", + " for j in range(n):\n", + " if i != j and can_affect(buildings[i], buildings[j]):\n", + " graph[i].append(j)\n", + "\n", + " def bfs(start):\n", + " visited = set()\n", + " queue = [start]\n", + " while queue:\n", + " node = queue.pop(0)\n", + " if node not in visited:\n", + " visited.add(node)\n", + " queue.extend(graph[node])\n", + " return len(visited)\n", + " max_affected = 0\n", + " for i in range(n):\n", + " max_affected = max(max_affected, bfs(i))\n", + " \n", + " return max_affected\n", + "buildings = [[2, 1, 3], [6, 1, 4]]\n", + "b=[[1,1,5],[10,10,5]]\n", + "\n", + "print(max_buildings_affected(buildings))\n", + "print(max_buildings_affected(b))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 1b32dcddab71154184673397477128ec952c8320 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 18:45:31 +0530 Subject: [PATCH 25/35] Solution --- December 23/Dec_23.ipynb | 59 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 December 23/Dec_23.ipynb diff --git a/December 23/Dec_23.ipynb b/December 23/Dec_23.ipynb new file mode 100644 index 0000000..ce0a557 --- /dev/null +++ b/December 23/Dec_23.ipynb @@ -0,0 +1,59 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Final Result 40\n" + ] + } + ], + "source": [ + "def crystal_grid(grid):\n", + " n = len(grid)\n", + " primary_diagonal_sum = sum(grid[i][i] for i in range(n))\n", + " secondary_diagonal_sum = sum(grid[i][n - i - 1] for i in range(n))\n", + " diagonal_energy = abs(primary_diagonal_sum - secondary_diagonal_sum)\n", + " boundary_energy = 0\n", + " boundary_energy += sum(grid[0]) + sum(grid[n - 1])\n", + " for i in range(1, n - 1):\n", + " boundary_energy += grid[i][0] + grid[i][n - 1]\n", + " final_result = diagonal_energy + boundary_energy\n", + " return final_result\n", + "grid = [\n", + " [1, 2, 3],\n", + " [4, 5, 6],\n", + " [7, 8, 9]\n", + "]\n", + "print(\"Final Result\",crystal_grid(grid))\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 8522ce1c94de31816736d8993b22e4b011e39e7a Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 18:50:25 +0530 Subject: [PATCH 26/35] Solution --- December 24/Dec_24.ipynb | 57 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 December 24/Dec_24.ipynb diff --git a/December 24/Dec_24.ipynb b/December 24/Dec_24.ipynb new file mode 100644 index 0000000..b1b6e6f --- /dev/null +++ b/December 24/Dec_24.ipynb @@ -0,0 +1,57 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'a': ['abc', 'acb'], 'b': ['bac', 'bca'], 'c': ['cab', 'cba']}\n" + ] + } + ], + "source": [ + "from itertools import permutations\n", + "\n", + "def group_permutations(s):\n", + " unique_perms = sorted(set(''.join(p) for p in permutations(s)))\n", + " grouped = {}\n", + " for perm in unique_perms:\n", + " first_letter = perm[0]\n", + " if first_letter not in grouped:\n", + " grouped[first_letter] = []\n", + " grouped[first_letter].append(perm)\n", + " return grouped\n", + "\n", + "input_str = \"abc\"\n", + "result = group_permutations(input_str)\n", + "print(result)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 49ef72dafa81ccccaef1c5bd3b8781bfebc8ae25 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 19:04:49 +0530 Subject: [PATCH 27/35] Solution --- December 26/Dec_26.ipynb | 62 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 December 26/Dec_26.ipynb diff --git a/December 26/Dec_26.ipynb b/December 26/Dec_26.ipynb new file mode 100644 index 0000000..56284a3 --- /dev/null +++ b/December 26/Dec_26.ipynb @@ -0,0 +1,62 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n", + "False\n" + ] + } + ], + "source": [ + "def can_jump(nums):\n", + " max_reachable = 0 # The farthest index we can reach\n", + " target = len(nums) - 1 # The last index\n", + "\n", + " for i, jump in enumerate(nums):\n", + " if i > max_reachable: # If we can't reach this index\n", + " return False\n", + " max_reachable = max(max_reachable, i + jump) # Update the farthest reachable index\n", + " if max_reachable >= target: # If we can reach or exceed the last index\n", + " return True\n", + "\n", + " return False\n", + "\n", + "# Example Input\n", + "num1=[2,3,1,0,4]\n", + "num2=[3,2,1,0,4]\n", + "# Output\n", + "print(can_jump(num1))\n", + "print(can_jump(num2))\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 86714b45a5ef89971f977ee43d9808f0e370d413 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 19:05:10 +0530 Subject: [PATCH 28/35] Solution --- December 25/Dec_25.ipynb | 157 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 December 25/Dec_25.ipynb diff --git a/December 25/Dec_25.ipynb b/December 25/Dec_25.ipynb new file mode 100644 index 0000000..33c96f8 --- /dev/null +++ b/December 25/Dec_25.ipynb @@ -0,0 +1,157 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "--- Task Scheduler Menu ---\n", + "1. Add Task\n", + "2. Remove Task\n", + "3. Search Task\n", + "4. Display Tasks\n", + "5. Exit\n", + "Task 'READ' added with priority 2.\n", + "\n", + "--- Task Scheduler Menu ---\n", + "1. Add Task\n", + "2. Remove Task\n", + "3. Search Task\n", + "4. Display Tasks\n", + "5. Exit\n", + "Task 'STUDY' added with priority 1.\n", + "\n", + "--- Task Scheduler Menu ---\n", + "1. Add Task\n", + "2. Remove Task\n", + "3. Search Task\n", + "4. Display Tasks\n", + "5. Exit\n", + "Tasks in priority order:\n", + "- READ (Priority 2)\n", + "- STUDY (Priority 1)\n", + "\n", + "--- Task Scheduler Menu ---\n", + "1. Add Task\n", + "2. Remove Task\n", + "3. Search Task\n", + "4. Display Tasks\n", + "5. Exit\n", + "Task 'READ' removed.\n", + "\n", + "--- Task Scheduler Menu ---\n", + "1. Add Task\n", + "2. Remove Task\n", + "3. Search Task\n", + "4. Display Tasks\n", + "5. Exit\n", + "Tasks in priority order:\n", + "- STUDY (Priority 1)\n", + "\n", + "--- Task Scheduler Menu ---\n", + "1. Add Task\n", + "2. Remove Task\n", + "3. Search Task\n", + "4. Display Tasks\n", + "5. Exit\n", + "Tasks in priority order:\n", + "- STUDY (Priority 1)\n", + "\n", + "--- Task Scheduler Menu ---\n", + "1. Add Task\n", + "2. Remove Task\n", + "3. Search Task\n", + "4. Display Tasks\n", + "5. Exit\n", + "Exiting Task Scheduler. Goodbye!\n" + ] + } + ], + "source": [ + "class TaskScheduler:\n", + " def __init__(self):\n", + " self.tasks = []\n", + " def add_task(self, description, priority):\n", + " self.tasks.append({\"description\": description, \"priority\": priority})\n", + " self.tasks.sort(key=lambda x: x[\"priority\"], reverse=True) \n", + " def remove_task(self, description):\n", + " for task in self.tasks:\n", + " if task[\"description\"] == description:\n", + " self.tasks.remove(task)\n", + " print(f\"Task '{description}' removed.\")\n", + " return\n", + " print(f\"Task '{description}' not found.\")\n", + " def search_task(self, description):\n", + " for task in self.tasks:\n", + " if task[\"description\"] == description:\n", + " print(f\"Task found: {task}\")\n", + " return\n", + " print(f\"Task '{description}' not found.\")\n", + " def display_tasks(self):\n", + " if not self.tasks:\n", + " print(\"No tasks available.\")\n", + " else:\n", + " print(\"Tasks in priority order:\")\n", + " for task in self.tasks:\n", + " print(f\"- {task['description']} (Priority {task['priority']})\")\n", + "\n", + "def menu():\n", + " scheduler = TaskScheduler()\n", + " while True:\n", + " print(\"\\n--- Task Scheduler Menu ---\")\n", + " print(\"1. Add Task\")\n", + " print(\"2. Remove Task\")\n", + " print(\"3. Search Task\")\n", + " print(\"4. Display Tasks\")\n", + " print(\"5. Exit\")\n", + " choice = input(\"Enter your choice: \")\n", + " if choice == \"1\":\n", + " description = input(\"Enter task description: \")\n", + " priority = int(input(\"Enter task priority (higher number = higher priority): \"))\n", + " scheduler.add_task(description, priority)\n", + " print(f\"Task '{description}' added with priority {priority}.\")\n", + " elif choice == \"2\":\n", + " description = input(\"Enter task description to remove: \")\n", + " scheduler.remove_task(description)\n", + " elif choice == \"3\":\n", + " description = input(\"Enter task description to search: \")\n", + " scheduler.search_task(description)\n", + " elif choice == \"4\":\n", + " scheduler.display_tasks()\n", + " elif choice == \"5\":\n", + " print(\"Exiting Task Scheduler. Goodbye!\")\n", + " break\n", + " else:\n", + " print(\"Invalid choice. Please try again.\")\n", + "menu()\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From cd9d3ca1bd8a229e17c01e2015c664daf0d49947 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 19:08:42 +0530 Subject: [PATCH 29/35] Solution --- December 27/Dec_27.ipynb | 65 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 December 27/Dec_27.ipynb diff --git a/December 27/Dec_27.ipynb b/December 27/Dec_27.ipynb new file mode 100644 index 0000000..215d902 --- /dev/null +++ b/December 27/Dec_27.ipynb @@ -0,0 +1,65 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6\n", + "9\n" + ] + } + ], + "source": [ + "def trap(height):\n", + " if not height or len(height) < 3:\n", + " return 0 \n", + " n = len(height)\n", + " left_max = [0] * n \n", + " right_max = [0] * n \n", + " water_trapped = 0\n", + " left_max[0] = height[0]\n", + " for i in range(1, n):\n", + " left_max[i] = max(left_max[i - 1], height[i])\n", + " right_max[n - 1] = height[n - 1]\n", + " for i in range(n - 2, -1, -1):\n", + " right_max[i] = max(right_max[i + 1], height[i])\n", + " for i in range(n):\n", + " water_trapped += min(left_max[i], right_max[i]) - height[i]\n", + "\n", + " return water_trapped\n", + "\n", + "h1 = [0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1]\n", + "h2=[4,2,0,3,2,5]\n", + "print( trap(h1))\n", + "print(trap(h2))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 988adc58544b3390c7bafcb7a8b6e599afd04806 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 19:11:45 +0530 Subject: [PATCH 30/35] Solution --- December 28/Dec_28.ipynb | 60 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 December 28/Dec_28.ipynb diff --git a/December 28/Dec_28.ipynb b/December 28/Dec_28.ipynb new file mode 100644 index 0000000..bc8e30a --- /dev/null +++ b/December 28/Dec_28.ipynb @@ -0,0 +1,60 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Can organize books: False\n" + ] + } + ], + "source": [ + "from collections import Counter\n", + "def canOrganizeBooks(books, shelfSize):\n", + " if len(books) % shelfSize != 0:\n", + " return False \n", + " book_counts = Counter(books)\n", + " sorted_books = sorted(book_counts.keys())\n", + " for book in sorted_books:\n", + " while book_counts[book] > 0: \n", + " for i in range(shelfSize):\n", + " if book_counts[book + i] <= 0: \n", + " return False\n", + " book_counts[book + i] -= 1 \n", + " \n", + " return True\n", + "\n", + "books = [1, 2, 3, 4, 5]\n", + "shelfSize = 4\n", + "print(\"Can organize books:\", canOrganizeBooks(books, shelfSize))\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 1f82042daad5d779be57e39e399d053ffa727194 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 19:41:23 +0530 Subject: [PATCH 31/35] Solution --- December 29/Dec_29.ipynb | 85 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 December 29/Dec_29.ipynb diff --git a/December 29/Dec_29.ipynb b/December 29/Dec_29.ipynb new file mode 100644 index 0000000..2f73f93 --- /dev/null +++ b/December 29/Dec_29.ipynb @@ -0,0 +1,85 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Minimum Total Weight: 0\n" + ] + } + ], + "source": [ + "import heapq\n", + "from collections import defaultdict\n", + "\n", + "def min_total_weight(N, M, P, portals):\n", + " directions = [(0, 1), (1, 0), (0, -1), (-1, 0)]\n", + " pq = []\n", + " dist = [[float('inf')] * M for _ in range(N)]\n", + " dist[0][0] = 0\n", + " heapq.heappush(pq, (0, 0, 0))\n", + " portal_map = defaultdict(list)\n", + " for x1, y1, x2, y2, w in portals:\n", + " portal_map[(x1 - 1, y1 - 1)].append((x2 - 1, y2 - 1, w))\n", + " portal_map[(x2 - 1, y2 - 1)].append((x1 - 1, y1 - 1, w))\n", + " while pq:\n", + " curr_cost, x, y = heapq.heappop(pq)\n", + " if curr_cost > dist[x][y]:\n", + " continue\n", + " if (x, y) == (N - 1, M - 1):\n", + " return curr_cost\n", + " for dx, dy in directions:\n", + " nx, ny = x + dx, y + dy\n", + " if 0 <= nx < N and 0 <= ny < M:\n", + " if curr_cost < dist[nx][ny]:\n", + " dist[nx][ny] = curr_cost\n", + " heapq.heappush(pq, (curr_cost, nx, ny))\n", + " if (x, y) in portal_map:\n", + " for nx, ny, w in portal_map[(x, y)]:\n", + " if curr_cost + w < dist[nx][ny]:\n", + " dist[nx][ny] = curr_cost + w\n", + " heapq.heappush(pq, (curr_cost + w, nx, ny))\n", + " del portal_map[(x, y)]\n", + " \n", + " return -1 \n", + "N, M = 4, 4\n", + "P = 3\n", + "portals = [\n", + " (1, 1, 2, 3, 5), \n", + " (2, 3, 4, 4, 2), \n", + " (1, 2, 4, 1, 8) \n", + "]\n", + "\n", + "result = min_total_weight(N, M, P, portals)\n", + "print(\"Minimum Total Weight:\", result)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 4428a68f72e8ed5c7e7dba80a5b7c9f9ccdb394f Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 19:44:00 +0530 Subject: [PATCH 32/35] Solution --- December 30/Dec_30.ipynb | 69 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 December 30/Dec_30.ipynb diff --git a/December 30/Dec_30.ipynb b/December 30/Dec_30.ipynb new file mode 100644 index 0000000..5141404 --- /dev/null +++ b/December 30/Dec_30.ipynb @@ -0,0 +1,69 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Minimum moves required = 3\n" + ] + } + ], + "source": [ + "def min_moves(k, n):\n", + " dp = [[0] * (n + 1) for _ in range(k + 1)]\n", + " for i in range(n + 1):\n", + " dp[1][i] = i \n", + " for eggs in range(2, k + 1):\n", + " for floors in range(1, n + 1):\n", + " dp[eggs][floors] = float('inf')\n", + " low, high = 1, floors\n", + " while low <= high:\n", + " mid = (low + high) // 2\n", + " break_case = dp[eggs-1][mid-1] \n", + " no_break_case = dp[eggs][floors-mid] \n", + " \n", + " worst_case = 1 + max(break_case, no_break_case)\n", + " dp[eggs][floors] = min(dp[eggs][floors], worst_case)\n", + " \n", + " # Move binary search bounds\n", + " if break_case > no_break_case:\n", + " high = mid - 1\n", + " else:\n", + " low = mid + 1\n", + " \n", + " return dp[k][n]\n", + "k = 2 \n", + "n = 6 \n", + "result = min_moves(k, n)\n", + "print(\"Minimum moves required =\", result)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 10b399591e1fa6ccfce8163b36771f81cae31352 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 19:47:39 +0530 Subject: [PATCH 33/35] Solution --- December 31/Dec_31.ipynb | 67 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 December 31/Dec_31.ipynb diff --git a/December 31/Dec_31.ipynb b/December 31/Dec_31.ipynb new file mode 100644 index 0000000..b041ad2 --- /dev/null +++ b/December 31/Dec_31.ipynb @@ -0,0 +1,67 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "normalized vec1: 0.600000 0.800000 0.000000\n", + "normalized vec2: -0.600000 0.800000 0.000000\n", + "normalized vec3: 0.384615 0.923077 0.000000\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "def normalize_velocity(vx, vy, vz):\n", + " # Calculate magnitude of the vector\n", + " magnitude = math.sqrt(vx**2 + vy**2 + vz**2)\n", + " if magnitude == 0:\n", + " return (0, 0, 0)\n", + " normalized_vx = vx / magnitude\n", + " normalized_vy = vy / magnitude\n", + " normalized_vz = vz / magnitude\n", + " \n", + " return (normalized_vx, normalized_vy, normalized_vz)\n", + "\n", + "vec1 = (3, 4, 0)\n", + "vec2 = (-6, 8, 0)\n", + "vec3 = (5, 12, 0)\n", + "\n", + "normalized_vec1 = normalize_velocity(*vec1)\n", + "normalized_vec2 = normalize_velocity(*vec2)\n", + "normalized_vec3 = normalize_velocity(*vec3)\n", + "print(f\"normalized vec1: {normalized_vec1[0]:.6f} {normalized_vec1[1]:.6f} {normalized_vec1[2]:.6f}\")\n", + "print(f\"normalized vec2: {normalized_vec2[0]:.6f} {normalized_vec2[1]:.6f} {normalized_vec2[2]:.6f}\")\n", + "print(f\"normalized vec3: {normalized_vec3[0]:.6f} {normalized_vec3[1]:.6f} {normalized_vec3[2]:.6f}\")\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} From af90ad22d7958549bc83fcfc9e77f96e15788414 Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 19:48:28 +0530 Subject: [PATCH 34/35] Delete December 31/Dec_31.ipynb --- December 31/Dec_31.ipynb | 67 ---------------------------------------- 1 file changed, 67 deletions(-) delete mode 100644 December 31/Dec_31.ipynb diff --git a/December 31/Dec_31.ipynb b/December 31/Dec_31.ipynb deleted file mode 100644 index b041ad2..0000000 --- a/December 31/Dec_31.ipynb +++ /dev/null @@ -1,67 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "normalized vec1: 0.600000 0.800000 0.000000\n", - "normalized vec2: -0.600000 0.800000 0.000000\n", - "normalized vec3: 0.384615 0.923077 0.000000\n" - ] - } - ], - "source": [ - "import math\n", - "\n", - "def normalize_velocity(vx, vy, vz):\n", - " # Calculate magnitude of the vector\n", - " magnitude = math.sqrt(vx**2 + vy**2 + vz**2)\n", - " if magnitude == 0:\n", - " return (0, 0, 0)\n", - " normalized_vx = vx / magnitude\n", - " normalized_vy = vy / magnitude\n", - " normalized_vz = vz / magnitude\n", - " \n", - " return (normalized_vx, normalized_vy, normalized_vz)\n", - "\n", - "vec1 = (3, 4, 0)\n", - "vec2 = (-6, 8, 0)\n", - "vec3 = (5, 12, 0)\n", - "\n", - "normalized_vec1 = normalize_velocity(*vec1)\n", - "normalized_vec2 = normalize_velocity(*vec2)\n", - "normalized_vec3 = normalize_velocity(*vec3)\n", - "print(f\"normalized vec1: {normalized_vec1[0]:.6f} {normalized_vec1[1]:.6f} {normalized_vec1[2]:.6f}\")\n", - "print(f\"normalized vec2: {normalized_vec2[0]:.6f} {normalized_vec2[1]:.6f} {normalized_vec2[2]:.6f}\")\n", - "print(f\"normalized vec3: {normalized_vec3[0]:.6f} {normalized_vec3[1]:.6f} {normalized_vec3[2]:.6f}\")\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.6" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} From 694dbe96f1d43a5ddc563bd7bef886d603a8deac Mon Sep 17 00:00:00 2001 From: Kiran Akshay S <88823454+regicidee@users.noreply.github.com> Date: Tue, 21 Jan 2025 19:48:47 +0530 Subject: [PATCH 35/35] Solution --- December 31/Dec_31.ipynb | 66 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 December 31/Dec_31.ipynb diff --git a/December 31/Dec_31.ipynb b/December 31/Dec_31.ipynb new file mode 100644 index 0000000..95dac3e --- /dev/null +++ b/December 31/Dec_31.ipynb @@ -0,0 +1,66 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "normalized vec1: 0.600000 0.800000 0.000000\n", + "normalized vec2: -0.600000 0.800000 0.000000\n", + "normalized vec3: 0.384615 0.923077 0.000000\n" + ] + } + ], + "source": [ + "import math\n", + "\n", + "def normalize_velocity(vx, vy, vz):\n", + " magnitude = math.sqrt(vx**2 + vy**2 + vz**2)\n", + " if magnitude == 0:\n", + " return (0, 0, 0)\n", + " normalized_vx = vx / magnitude\n", + " normalized_vy = vy / magnitude\n", + " normalized_vz = vz / magnitude\n", + " \n", + " return (normalized_vx, normalized_vy, normalized_vz)\n", + "\n", + "vec1 = (3, 4, 0)\n", + "vec2 = (-6, 8, 0)\n", + "vec3 = (5, 12, 0)\n", + "\n", + "normalized_vec1 = normalize_velocity(*vec1)\n", + "normalized_vec2 = normalize_velocity(*vec2)\n", + "normalized_vec3 = normalize_velocity(*vec3)\n", + "print(f\"normalized vec1: {normalized_vec1[0]:.6f} {normalized_vec1[1]:.6f} {normalized_vec1[2]:.6f}\")\n", + "print(f\"normalized vec2: {normalized_vec2[0]:.6f} {normalized_vec2[1]:.6f} {normalized_vec2[2]:.6f}\")\n", + "print(f\"normalized vec3: {normalized_vec3[0]:.6f} {normalized_vec3[1]:.6f} {normalized_vec3[2]:.6f}\")\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.6" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +}