🌟 Day 78 of #100DaysOfCode Today I solved the “Lemonade Change” 🍋 problem — a great exercise in Greedy Algorithms and logical decision-making. 🧩 The Problem: You’re running a lemonade stand where each glass costs $5. Customers pay with $5, $10, or $20 bills — and you must give the correct change for every transaction in order. 💡 The Approach: Maintain counts of $5 and $10 bills. For each customer: If they pay with $5 → keep it. If they pay with $10 → give one $5 as change. If they pay with $20 → try to give one $10 + one $5 (prefer larger denominations first), else give three $5 bills. If at any point change can’t be given → return false. ⚙️ Concept Used: ➡️ Greedy Algorithm — always make the optimal local decision (use larger bills first) to ensure global success. ✅ Takeaway: A simple problem that strengthens understanding of conditional logic, greedy thinking, and resource tracking in real-world scenarios. 💻✨ #DSA #Coding #CPlusPlus #ProblemSolving #GreedyAlgorithm #Programming #CodeNewbie #100DaysOfCodeChallenge
Solved "Lemonade Change" problem using Greedy Algorithm
More Relevant Posts
-
🚀 Day 63 of #100DaysOfCode Today I solved a C++ problem: 👉 Find K Pairs with Smallest Sums 🧩 Problem Summary: Given two sorted arrays arr1 and arr2, and an integer k, the task is to find k pairs (a, b) where a belongs to arr1 and b belongs to arr2, such that their sum is among the smallest possible. 🧠 Approach: I used a min-heap (priority_queue with greater comparator) to always extract the smallest pair sum efficiently. Start by pushing the smallest possible pairs from arr1 and the first element of arr2. Each time we pop the smallest pair, we add the next possible pair from the same row. Continue until we find k pairs. ⚙️ Key Concepts: Priority Queue (Min-Heap) Pair Sum Optimization Efficient use of STL 💡 Complexity: Time: O(k log k) Space: O(k) 👨💻 Language: C++ (STL-based) #100DaysOfCode #Day63 #CPlusPlus #STL #CodingChallenge #DSA #ProblemSolving #LeetCode #CodeNewbie #Programmer #LearnCoding #CompetitiveProgramming #cpp #DataStructures #Algorithms
To view or add a comment, sign in
-
-
📅 Day 44 of #100DaysOfCode Problem: Minimum Number of Operations to Make Array Continuous (LeetCode 2009) Approach: 1️⃣ For each element, assumed it to be the starting point of the range. 2️⃣ Calculated what the range should end at → start + n - 1. 3️⃣ Iterated over all numbers, counted how many don’t fit in this range (those need to be replaced). 4️⃣ Kept track of the minimum replacements across all possible ranges. #100DaysOfCode #LeetCode #DSA #ProblemSolving #Cplusplus #Algorithms #CodingChallenge #Programming #DeveloperLife #CodeNewbie #DailyDSA #SoftwareEngineering #CodingJourney #TechCommunity #KeepLearning #GrowthMindset #Motivation #LearningInPublic
To view or add a comment, sign in
-
-
📅 Day 50 of #100DaysOfCode Problem: Simplify Path (LeetCode 71) Approach: 1️⃣ Used a stringstream to split the path by '/'. 2️⃣ Ignored empty tokens and "." since they don’t change the directory. 3️⃣ For "..", popped the last directory from the stack (if any). 4️⃣ Rebuilt the canonical path from the stack in the correct order. #100DaysOfCode #LeetCode #DSA #ProblemSolving #Stacks #Cplusplus #CodingChallenge #Algorithms #Programming #DeveloperLife #CodingJourney #CodeNewbie #DailyDSA #SoftwareEngineering #KeepLearning #GrowthMindset #Motivation #TechCommunity #CleanCode
To view or add a comment, sign in
-
-
🟩 Day 56 of Leetcode 150 days challenge – Add Two Numbers (LeetCode #2) #LeetCode150 #Day56 #AddTwoNumbers #LinkedList #DataStructures #Algorithms #ProblemSolving #LeetCode #CodingChallenge #CPP #Programming #150DaysOfCode #LearnDSA #SDEPrep #CodingJourney 🔹 Problem: Given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order, and each node contains a single digit. Add the two numbers and return the sum as a linked list. Example: Input: (2 -> 4 -> 3) + (5 -> 6 -> 4) Output: 7 -> 0 -> 8 Explanation: 342 + 465 = 807 🧠 Approach: We perform the addition just like we do on paper: Initialize a carry as 0. Traverse both lists simultaneously. Add the digits from both lists + carry. Store the last digit in a new node. Update carry = sum / 10. Continue until both lists are done and carry is 0. 🕒 Time Complexity: O(max(M, N)) 💾 Space Complexity: O(max(M, N)) 🏁 Key Takeaway: Linked list addition is a classic problem that strengthens your understanding of pointer manipulation, carry handling, and edge cases like unequal list lengths. 💡
To view or add a comment, sign in
-
-
📅 Day 49 of #100DaysOfCode Problem: 3228. Maximum Number of Operations to Move Ones to the End (LeetCode) Approach: 1️⃣ Keep a counter of how many '1's you’ve seen as you go through the string. 2️⃣ When you see a '0' that’s right before a '1' or at the end, you can “move” all those previous '1's past this '0' — so add that counter to the result. 3️⃣ Every time you hit a '1', increment the counter; for '0', check the condition and reset logic as needed. 4️⃣ Return the total operations counted — it’s just one pass through the string = O(n) time, O(1) space. #100DaysOfCode #LeetCode #DSA #ProblemSolving #Cplusplus #Algorithms #Greedy #CodingChallenge #Programming #DeveloperLife #CodeNewbie #DailyDSA #SoftwareEngineering #KeepLearning #TechCommunity #GrowthMindset #Motivation
To view or add a comment, sign in
-
-
📅 Day 51 of #100DaysOfCode Problem: Number of Substrings That Satisfy (LeetCode 3280) Approach: 1️⃣ Precomputed cumulative counts of 1s using a prefix sum array. 2️⃣ For each substring [i...j], calculated both the number of 0s and 1s. 3️⃣ Used a smart optimization: If (zero² > one), skip forward — those substrings can’t satisfy the condition. If (zero² == one) or (zero² < one), count and move ahead efficiently. 4️⃣ This drastically reduced redundant iterations compared to a naïve O(n³) brute force. #100DaysOfCode #LeetCode #DSA #ProblemSolving #Cplusplus #CodingChallenge #Algorithms #MathLogic #BinaryString #Programming #DeveloperLife #CodingJourney #CodeNewbie #DailyDSA #SoftwareEngineering #KeepLearning #GrowthMindset #Motivation #TechCommunity
To view or add a comment, sign in
-
-
🚀 Day 62 of LeetCode150DaysChallenge Problem: Rotate a Linked List Right #DSA #LeetCode #CodingChallenge #LinkedList #C++ #Programming #150DaysOfCode #LearnDSA #SDEJourney Topic: Linked List Given the head of a linked list, we need to rotate it to the right by k places. Similar to rotate an array by k elements For example: Input: 1 → 2 → 3 → 4 → 5, k = 2 Output: 4 → 5 → 1 → 2 → 3 🔍 Intuition: Rotating a linked list is basically bringing the last k nodes to the front. To do that efficiently, we need to understand: The length (n) of the list. The point of split (at position n - k). Reconnect the parts properly. 🧠 Step-by-Step Approach: Find the length of the list. Compute k = k % n to handle rotations larger than the list size. Break the list at the (n - k)th node. Reverse both halves for easier concatenation. Join them, and finally reverse the whole list back to get the rotated version. This clever use of the reverse operation avoids complex pointer adjustments! ⏱️ Time Complexity: O(n) – one traversal to find length, and a few reversals. 💾 Space Complexity: O(1) – in-place manipulation. 💡 Key Takeaway: This problem beautifully shows how reversing sublists can simplify complex pointer operations. Mastering linked list manipulations like these builds strong problem-solving intuition! 💪
To view or add a comment, sign in
-
-
📅 Day 45 of #100DaysOfCode Problem: Count Operations to Obtain Zero (LeetCode 2169) 🧩 Approach: 1️⃣ Used a simple loop while both numbers are greater than zero. 2️⃣ In each step, added num1 / num2 to the count — because instead of subtracting repeatedly, we can do it in one go. 3️⃣ Took modulus to simulate the remainder after multiple subtractions. 4️⃣ Swapped numbers and repeated the process until one hit zero. #100DaysOfCode #LeetCode #DSA #ProblemSolving #Cplusplus #CodingChallenge #Algorithms #Programming #DeveloperLife #CodeNewbie #DailyDSA #MathLogic #SoftwareEngineering #TechCommunity #KeepLearning #GrowthMindset #Motivation #CodingJourney
To view or add a comment, sign in
-
-
📅 Day 31 of #100DaysOfCode Problem: Reverse Pairs (LeetCode 493) Approach: 1️⃣ Divide the array using merge sort to count pairs efficiently. 2️⃣ Count cross-pairs where nums[i] > 2 * nums[j] while merging. 3️⃣ Merge the halves back in sorted order to maintain correct comparisons. 4️⃣ Sum up counts from left, right, and cross halves for the final result. #100DaysOfCode #LeetCode #DSA #ProblemSolving #Cplusplus #CodingChallenge #Algorithms #Programming #DeveloperLife #CodeNewbie #DailyDSA #SoftwareEngineering #CodingJourney #LearningInPublic #TechCommunity #KeepLearning #DivideAndConquer #GrowthMindset #Motivation
To view or add a comment, sign in
-
-
📅 Day 47 of #100DaysOfCode Problem: Combination Sum II (LeetCode 40) Approach: 1️⃣ Sorted the array to handle duplicates easily. 2️⃣ Used recursion to explore each number — either include it or skip it. 3️⃣ Reduced the target as I added elements, and when the target hit 0, that path became a valid combination. 4️⃣ Skipped duplicates using a simple check: if (i > idx && candidates[i] == candidates[i-1]) continue. #100DaysOfCode #LeetCode #DSA #ProblemSolving #Backtracking #Recursion #Cplusplus #CodingChallenge #Algorithms #Programming #DeveloperLife #CodeNewbie #SoftwareEngineering #DailyDSA #CodingJourney #KeepLearning #TechCommunity #Motivation #GrowthMindset
To view or add a comment, sign in
-
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development