From 88cb17066f775070ccd67f96e3ca70c23b24a6cf Mon Sep 17 00:00:00 2001 From: SatyamVyas Date: Tue, 25 Jun 2024 12:15:54 +0530 Subject: [PATCH] Greedy Completed --- 12. Greedy/12.2. MediumHard/7. SJF.py | 15 ++++++++++ 12. Greedy/12.2. MediumHard/8. LRU.py | 42 +++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/12. Greedy/12.2. MediumHard/7. SJF.py b/12. Greedy/12.2. MediumHard/7. SJF.py index e69de29..523302a 100644 --- a/12. Greedy/12.2. MediumHard/7. SJF.py +++ b/12. Greedy/12.2. MediumHard/7. SJF.py @@ -0,0 +1,15 @@ +class Solution: + def solve(self, bt): + bt.sort() + wait = 0 + curr = 0 + for i in bt: + wait += curr + curr += i + return int(wait/len(bt)) + + +sol = Solution() +print(sol.solve([7, 1, 6, 9, 2, 10, 7, 7, 10, 9])) + +# Link: https://www.geeksforgeeks.org/problems/shortest-job-first/1 \ No newline at end of file diff --git a/12. Greedy/12.2. MediumHard/8. LRU.py b/12. Greedy/12.2. MediumHard/8. LRU.py index e69de29..eea7a66 100644 --- a/12. Greedy/12.2. MediumHard/8. LRU.py +++ b/12. Greedy/12.2. MediumHard/8. LRU.py @@ -0,0 +1,42 @@ +class Solution: + def __init__(self): + self.cap = 0 + self.curr = 0 + self.cache = [] + self.faults = 0 + + def pageFaults(self, n, c, pages): + # N -> number of pages + # C -> cache size + # Pages -> array of pages + + self.cap = c + for i in range(n): + page = pages[i] + if not self.get(page): + self.faults += 1 + self.put(page) + else: + continue + + return self.faults + + def get(self, key: int) -> int: + try: + index = self.cache.index(key) + page = self.cache.pop(index) + self.cache.append(page) + return 1 + except ValueError: + return 0 + + def put(self, key: int) -> None: + if self.curr < self.cap: + self.cache.append(key) + self.curr += 1 + else: + self.cache.pop(0) + self.cache.append(key) + + +# Link: https://www.geeksforgeeks.org/problems/page-faults-in-lru5603/1 \ No newline at end of file